php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.07.2006, 17:20  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard 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 ;
Zergling-new ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.07.2006, 19:00  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

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.
Zergling-new ist offline   Mit Zitat antworten
Alt 06.07.2006, 19:29  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

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.
xabbuh ist offline   Mit Zitat antworten
Alt 06.07.2006, 20:15  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

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
Zergling-new ist offline   Mit Zitat antworten
Alt 07.07.2006, 09:58  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

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
xabbuh ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Design und Code Trennen TeazY PHP Tipps 2008 29 21.05.2008 12:08
Koordinatengruppen in Tabelle erfassen ssm Datenbanken 5 18.09.2006 16:52
Zeilenanzahl einer tabelle mit WHERE aber ohne schleife? sovereign Datenbanken 13 17.04.2006 20:34
[Erledigt] Problem mit dem Füllen einer Tabelle über Formular PHP Tipps 2006 18 10.01.2006 12:51
Problem mit Anzeige einer Tabelle mit dem Firefox? HTML, Usability und Barrierefreiheit 8 28.11.2005 15:08
[Erledigt] Tabelle aktualisieren Datenbanken 3 23.11.2005 09:54
[Erledigt] Problem mit mySQL Datenbanken 7 27.09.2005 12:06
[Erledigt] mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
tabelle in tabelle ohne aussenrand noskule HTML, Usability und Barrierefreiheit 6 25.08.2005 14:17
Design Beitragsarchiv 26 04.06.2005 20:56
[Erledigt] Interne Tabelle (DB Tabelle in Array auslesen) PHP Tipps 2005 10 29.03.2005 17:08
Tabelle in Tabelle ausrichten HTML, Usability und Barrierefreiheit 7 03.01.2005 14:32
Sortieren anhand einer zweiten Tabelle PHP Tipps 2004 6 20.09.2004 09:03
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
personentabelle, personenregister php, star wars personen (tapele), sql personenregister, tabelle personenregister, personentabelle datenbank, personentabelle erstellen php, meinungen für personen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:24 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.