Ankündigung

Einklappen
Keine Ankündigung bisher.

Design-Meinungen zu Personen-Tabelle

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Design-Meinungen zu Personen-Tabelle

    Hallo,

    ich mache gerade aus Spass eine Seite wo der Weg eigentlich das Ziel ist :P
    Letztlich läuft alles auf eine Community heraus, allerdings nur im kleinen Freundeskreis, also mit Partybildern, Adress- und Telefon-Datenbank bla. Was man eben brauchen könnte, aber eigentlich niemand wirklich brauch.

    Dabei möchte ich auch Filmzitate übernehmen und komme so darauf, eine "persons" Tabelle zu erstellen, in die alle Personen kommen, die irgendwie auf der Seite vermerkt sind. Sei es dadurch dass sie User, Zitate-Authoren, Personen auf Fotos, etc. sind. Davon "ableiten" werden sich "User", deren banale zusätzliche Eigenschaft momentan "email" und "password" sind.

    Stellt sich die Frage wie ich mit Schauspielern umgehe, denn die gibt es ja einmal wirklich und einmal als Rolle. Mir wiederstrebt gerade etwas, der Tabelle "persons" einen zusätzlichen Flag "parent" oder "isReally" zu geben (um von dort auf die tatsächliche Person zu linken), aber eine neue Tabelle "actors" (eigentlich sind es ja dann die Rollen) gefällt mir auch nicht, da die Schauspielerrolle ja dann nicht im Personen-Register vorkommt (was den Sinn zerstören würde).

    Was mache ich im Gegenzug mit James Bond? Ich kann ja dann schlecht bei Roger Moore in die "isReally" James Bond verlinken..

    Eine Verlinkungs-Tabelle unter den Personen father | son finde ich auch nicht so prickelnd..

    Any Ideas oder findet ihr das ganze Konzept Mist? Doch aufteilen in "actors" und "users" und wenn noch eine Personengruppe hinzukäme eben dafür eine neue Tabelle erstellen "sportstars" (oder was weiß ich) und die dann jeweils manuell in die Personen-Suche integrieren und "persons" ganz weglassen?

    Code:
    -- phpMyAdmin SQL Dump
    -- version 2.7.0-pl1
    -- http://www.phpmyadmin.net
    -- 
    -- Host: localhost
    -- Erstellungszeit: 06. Juli 2006 um 17:09
    -- Server Version: 5.0.18
    -- PHP-Version: 5.1.1
    -- 
    -- Datenbank: `zuckermaeusken`
    -- 
    
    -- --------------------------------------------------------
    
    -- 
    -- Tabellenstruktur für Tabelle `persons`
    -- 
    
    CREATE TABLE `persons` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `lastname` varchar(50) collate latin1_general_ci default NULL,
      `firstname` varchar(50) collate latin1_general_ci default NULL,
      `nickname` varchar(50) collate latin1_general_ci default NULL,
      `edited` datetime NOT NULL,
      `editor` int(10) unsigned default NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;
    
    -- --------------------------------------------------------
    
    -- 
    -- Tabellenstruktur für Tabelle `quote_categories`
    -- 
    
    CREATE TABLE `quote_categories` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `name` varchar(50) collate latin1_general_ci NOT NULL,
      `iconsrc` varchar(250) collate latin1_general_ci NOT NULL,
      `edited` datetime NOT NULL,
      `editor` int(10) unsigned NULL,
      PRIMARY KEY  (`id`),
      UNIQUE KEY `name` (`name`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;
    
    -- --------------------------------------------------------
    
    -- 
    -- Tabellenstruktur für Tabelle `quotes`
    -- 
    
    CREATE TABLE `quotes` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `cat` int(10) unsigned default NULL,
      `quote` varchar(250) collate latin1_general_ci NOT NULL,
      `author` int(10) unsigned NOT NULL,
      `edited` datetime NOT NULL,
      `editor` int(10) unsigned NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;
    
    -- --------------------------------------------------------
    
    -- 
    -- Tabellenstruktur für Tabelle `users`
    -- 
    
    CREATE TABLE `users` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `person_id` int(10) unsigned NOT NULL,
      `email` varchar(100) collate latin1_general_ci NOT NULL,
      `password` varchar(40) collate latin1_general_ci NOT NULL,
      `oldpassword` varchar(40) collate latin1_general_ci default NULL,
      `edited` datetime NOT NULL,
      `editor` int(10) unsigned default NULL,
      PRIMARY KEY  (`id`),
      UNIQUE KEY `person_id` (`person_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;

  • #2
    Ich werde es - wenn keine anderen Vorschläge kommen - so lösen, dass ich in "persons" nur Personen stopfe, die existieren, Rollen in Filmen kommen in eine Extra-Tabelle. Dann habe ich auch keine Zuordnungs-Probleme.

    Kommentar


    • #3
      Wenn du eine "optimale" Normalisierung erreichen möchtest, würde ich über drei Tabellen gehen:
      - persons
      - alias_category
      - alias

      Diese hätten dann folgende Funktionen:
      persons:
      Reale Namen und Daten der einzelnen Personen (z. B. Roger Moore, dein Name, deine Freunde etc.)
      alias_category:
      Rubriken, in denen Aliase vergeben werden können (z. B. Filme (Rollen), Foren (Benutzernamen), ...)
      alias:
      Aliase aller Personen (z. B. James Bond, Zergling, ...)

      Wenn man es ganz auf die Spitze treiben möchte, könnte man noch eine vierte Tabelle anlegen, in der dann die relativ allgemeinen Kategorien feiner aufgesplittet werden. Beispielsweise hätte die Oberkategorie Filme dann die Unterkategorien Star Wars, James Bond, Spider Man, .... Foren könnten in in die einzelnen Communities differiert werden.

      Kommentar


      • #4
        Die Idee gefällt mir, eine Link-Tabelle für person_id | alias_id fehlt noch.
        Die ganz genaue Unterteilung wäre natürlich gerade für die Community sinnvoll, Admin, Mod, User, Gast..
        Ich weiß aber noch nicht ob ich das übernehme.

        Danke! :P

        Kommentar


        • #5
          Vielleicht sollte man sogar auf die Tabelle für Unterubriken verzichten und stattdessen eine hierarchische Strukturierung der Kategorien in der entsprechenden Tabelle ermöglichen:
          Code:
          categoryid
          top
          name

          Kommentar

          Lädt...
          X