romy: Frage zu mysql-Struktur

Beitrag lesen

Hi Rick,

Beispiel:
Ich habe einmal die Tabelle "user" und einmal die Tabelle "abteilung". Ganz klar, daß ich über den Primärschlüssel User_ID die Relation herstelle.

Aber könnte/müsste ich das nicht im Extrem bis ins kleinste Detail so machen?
Tabelle Geschlecht: männlich/weiblich, Primärschlüssel= User_ID
Tabelle Name: Textfeld, Primärschlüssel= User_ID
Tabelle Vorname; Textfeld, Primärschlüssel= User_ID

Nein.
Daten in eigene Tabellen auslagern, hat immer dann Sinn, wenn die Daten mehrfach gebraucht und verwendet werden und wenn diese auch unter Umständen geändert werden.

Mal ein Beispiel: Wenn du den Namen in eine eigene Tabelle auslagern würdest, damit z.B. der Name Schmidt nur einmal vorkommt, dann hat das eigentlich keinen Sinn. Warum nicht? Wenn einer der User seinen Namen ändert zu Schmitt, dann gilt das nur für ihn, nicht für andere. Es ist in dem Sinne also keine Redundanz.

Wenn du aber zum Beispiel eine Abteilungszugehörigkeit in der Tabelle abbilden willst, wäre eine Tabellenauslagerung sinnvoll, denn die Namen der Abteilungen könnten sich ändern, es könnte auch eine dazukommen. In der Struktur könnte ein Feld Kürzel dazukommen oder gebraucht werden, etc...

Ich weiß nicht, ob ich es dir rüberbringen konnte. Zusammenfassend würde ich sagen, dass das auslagern von Tabellen nur dann interessant ist, wenn die ausgelagerten Daten veränderlich sind oder in einer 1:n - Beziehung zum Ursprung stehen oder extrem redundant sind. Postleitzahlen könnte man auch auslagern und es wäre theoretisch sogar sinnvoll, aber wahrscheinlich nicht praktikabel, außer bei einer Adressdatenbank.

Ich bin nicht so rochtig zufrieden mit meiner Antwort, aber vielleicht hilft es ja trotzdem weiter.

ciao
romy