1:1-Relation in eine Tabelle oder getrennt?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Freeceleb
Mitglied
Beiträge: 27
Registriert: 22.07.2002 20:50
Wohnort: Wuppertal

1:1-Relation in eine Tabelle oder getrennt?

Beitrag von Freeceleb »

Hallo allerseits,

ich überlege gerad, wie ich die Userdaten eines zu erstellenden Portals am besten abspeichern sollte.

Und zwar gibt es zu jedem User bei der Anmeldung einige Angaben abzuspeichern, so wie halt Vor-, Nachname, Adresse, usw.

Eigentlich könnte man ja alles in eine Tabelle packen, inkl. Loginname, verschlüsseltes Passwort etc.. Aber an für sich wird die Tabelle dann sehr "breit", hat also viele Spalten. Könnte sich das auf die Performance der Datenbank hinterher negativ auswirken?

Im Moment geht meine Tendenz da eher in Richtung 2 Tabellen, eine mit den Usernamen, Passwörtern, Status-Angaben etc. und eine mit den persönlichen Angaben.

Was ist nach Eurer Meinung besser?

In dem Forum hier z.B. wird ja glaub ich alles in eine Tabelle reingepackt. Aber hier gibt man ja bei der Anmeldung auch nicht seinen halben Lebenslauf ein :D
Liebe Grüße
Freeceleb
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Also 'ne 1:1-Beziehung birgt immer die Gefahr von Inkonsistenzen, außerdem dürfte es der Geschwindigkeit nicht gerade zuträglich sein. Zumal das ganze ja beim Bearbeiten etwas schwieriger wird.
Ich würd's nur in wenigen Ausnahmefällen machen, wenn z.B. viel sortiert wird oder in einem Feld Daten variabler Länge gespeichert werden.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
R. U. Serious
Mitglied
Beiträge: 153
Registriert: 11.10.2003 12:33
Kontaktdaten:

Beitrag von R. U. Serious »

Es gibt keine pauschale Antwort. Hier hilft nur konkretes Testen. In 4 von 5 Fällen wird es wie Phillip sagt, sinnvoller sein, in eine Tabelle zu packen. Eine Ausnahme würde ich nur machen, wenn es konkrete Testdaten gibt die belegen, dass es einen Vorteil bringt. Bsow. wie bei phpbb_posts und phpbb_posts_text. Ersteres wenige Daten auf die sehr häufig zugegriffen wird, letztere sehr umfangreich und weniger Zugriffe: Es wurde getestet und dann in 2 Tabellen geteilt.

btw: Die Anzahl der Felder wird eher wenig ausmachen, dann eher die gesamte Grösse der Felder/Feld-gruppen auf der Festplatte und die Häufigkeit der Zugriffe.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Das mit phpbb_posts_text ist übrigens der einzige Fall, wo phpBB eine 1:1 Beziehung verwendet. Die Tabelle phpbb_users von phpBB hat z.B. fast 50 Felder: http://www.phpbb.de/doku/doku2.php?mode=users#users
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Pyramide hat geschrieben:Das mit phpbb_posts_text ist übrigens der einzige Fall, wo phpBB eine 1:1 Beziehung verwendet.
Wenn man von den Privaten Nachrichten und den Themes-Tabellen absieht, ja ;-)

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Ups stimmt, da habe ich gar nicht dran gedacht :oops:
Benutzeravatar
Freeceleb
Mitglied
Beiträge: 27
Registriert: 22.07.2002 20:50
Wohnort: Wuppertal

Beitrag von Freeceleb »

Vielen Dank für Eure Antworten, die haben mir weitergeholfen :)
Liebe Grüße
Freeceleb
Antworten

Zurück zu „Coding & Technik“