Beziehungsdrama: NULL im Schlüssel
-
Hallo,
Tabelle Ereignis:
Infos über ein Ereignis (Datum, Ort, Beschreibung, etc.)Tabelle Person:
Alle Personen, die in ein Ereignis verwickelt sein könnenTabelle Material:
Alle Dinge, die an einem Ereignis beteiligt sein könnenTabelle EreignisZuordnung:
Ordnet einem Ereignis Personen und Material zuNormal macht man dann doch
Ereigins_id, Person_id, Material_id
zum Primärschlüssel in EreignisZuordnung.Dummerweise gibt's aber Ereignisse, bei denen nur Personen, aber keine Materialien vorhanden sind.
Was macht man dann mit der Material_id?-> NULL setzten geht ned, da Schlüssel.
-> Dummy in Material ist unschön.
-> Den dreien den Schlüsselstatus aberkennen und eine normale Zähler-ID in die Tabelle einbauen?Oder ganz was anderes?
thx
Martin
-
Ich würde auf die referentielle Integrität zwischen den Tabellen verzichteten. Dann kann man, wenn kein Material zugeordnet ist, in den Schlüssel 0 (nicht NULL, die Zahl 0) reinschreiben, ohne das man einen Dummysatz bräuchte.
Die Integrität stelle ich auf Anwendungsebene sicher, ist meistens praktikabler und vor allem flexibler.
-
Vorausgesetzt, es gibt keine Material Id = 0, kannst Du doch 0 dort angeben. NOT NULL bedeutet, dass ein Wert angegeben werden muß. 0 ist ein Wert.
-
Andere Idee:
Vielleicht machen auch zwei Verknüpfungstabellen Sinn?
1. Ereigins_id, Person_id,
2. Ereigins_id, Material_idKommt auf die Aufgabenstellung an.
-
Joe_M. schrieb:
Vorausgesetzt, es gibt keine Material Id = 0, kannst Du doch 0 dort angeben. NOT NULL bedeutet, dass ein Wert angegeben werden muß. 0 ist ein Wert.
Fincki|work schrieb:
Andere Idee:
Vielleicht machen auch zwei Verknüpfungstabellen Sinn?
1. Ereigins_id, Person_id,
2. Ereigins_id, Material_idletzteres gefällt mir besser, aber das obere lässt sich schneller umsetzen.
Da werd ich mal in mich gehen müssen...
Danke