Hallo,
Ich habe ein „konzeptionelles“ Problem und kann das leider nciht selber lösen, da ich mich da mit den theoretischen Aspekten nicht auskenne.
Ich habe eine Tabelle „Versand“ die alle Infos zu einem versendten PAket beinhaltet (DAtum, Versanddienstleister, TrackingID) etc.
Diese Tabelle hat nun zwei Foreign Keys einmal zu einer einer "Bestellung"sTabelle und einmal zu einer „Werbepräsentbestellung“ Tabelle. ("Vater"tabellen)
Wenn nun ein Werbepräsent bestellt wird bekommt die „Versand“ Tabelle den entsprechenden Primary Key der „Werbepräsentbestellung“ eingetragen, wie das eben bei Relationen so der FAll ist. Wenn eine normale Bestellung stattfindet bekommt der entsprechende ForeignKey die ID der normalen normale Bestellung… = typische Foreign Key Relation…
(Dies ist vereinfacht, man könnte evtl. auch Werbepresentbestellung als normale Bestellung ansehen und damit würde diese Tabelle wegfallen. DAs ganz ist jedoch nur exemplarisch um mein Problem aufzuzeigen, da die Anwendung selbst wesentlich komplexer ist…)
Meine Frage ist nun, „irgendwie“ denke ich, dass das aber nicht richtig ist, dass eine Versandtabelle zwei ForeignKeys hat, wovon immer eine definitiv den Wert „Null“ hat: Wenn ich ein Werbepräsent versende dann hat der NormaleBestellungs Foreign Key = Null und wenn ich eine Normale Bestellung versende dann hat der Werbepräsent Foreign Key = Null.
Das hört sich für mich irgendwie nach nicht richtig normalisiert an, mir fehlt aber das Wissen um da festzustellen was und ob das nun „falsch“ ist bzw. was die richtige Lösung ist.
(In dem Beispiel oben muss ein Foreign Key der Versandtabelle eigentlich immer auf eine Bestellung verweisen und somit dürfte der Foreign Key niemals Null sein. Mit der Lösung oben kann ich aber keine Constraints setzen da, da ja immer doch einer der beiden Foreign Keys null ist…)
Theoretisch wäre es möglich, die Versandtabelle zu duplizieren und einmal eine „WerbepräsentVErsand“ TAbelle anzulegen und einemal eine „(Normale)BestellungVersand“ Tabelle. Dann könnte man den jeweils zweiten ForeignKey weglassen und hätte nur noch den „richtigen“ Foreign Key in der Tabelle. DAnn hat man aber zwei mehr oder weniger identische Tabellen??? (Ist das der richtige Lösungsansatz?)
Oder macht es Sinn hier mit einer Relationen Tabelle zu arbeiten die zwischen einer einzelne Versandtabelle geschaltet wird und dann die Primary Keys von allen Drei Tabellen beinhaltet.
Bin für Tips und Hinweise sehr dankbar !!!
Julian