Hi!
Wir diskutieren gerade eine neue Struktur einer Datentabelle und können uns nicht darauf einigen, ob bei der Struktur ein Verstoß gegen die 3.NF vorliegt oder nicht.
Satzstruktur:
ID
Bezeichnung
Typ
ID_Besitz
Stufe
ID_Ort
Anm.: ID_Besitz und ID_Ort sind Foreign Keys, die auf zwei andere Tabellen zeigen.
Das Problem der Diskussion:
Die Felder „ID_Besitz“, „Stufe“ und „ID_Ort“ sind nur dann gefüllt, wenn „Typ“ einen bestimmten Wert annimmt. Anderenfalls müssen diese drei Felder auf NULL stehen.
Beispiel:
In „Typ“ steht „O“
-> ID_Besitz enthält einen numerischen Wert, den dem Schlüssel eines Eintrages in einer anderen Tabelle entspricht,
-> „Stufe“ enthält einen Wert von 1 bis 5,
-> „ID_Ort“ enthält einen numerischen Wert, den dem Schlüssel eines Eintrages in einer anderen Tabelle entspricht,
In „Typ“ steht „F“
-> „ID_Besitz“ muss NULL sein
-> „Stufe“ muss NULL sein
-> „ID_Ort“ muss NULL sein
Stand der Diskussion:
Einige sagen, die Tabelle darf so aussehen.
Andere sagen, die Datensätze für „Typ“ = „F“ müssen in eine eigene Tabelle ausgelagert werden, da die Attribute „ID_Besitz“, „Stufe“ und „ID_Ort“ für diese Datensätze überflüssig sind.
Was sagen die Datenbank-Fachleute hier dazu? Daten in zwei Tabellen trennen oder die Daten gemischt halten? Wird die 3.NF verletzt?
Grüße
Heinrich