Angenommen, ich entwerfe eine Datenbank für ein Szenario, in dem eine Eins-zu-Null-oder-Eins-Beziehung (1-0..1) besteht. Beispielsweise:
- Es gibt eine Reihe von Benutzern , und einige Benutzer können auch Kunden sein .
Also habe ich die beiden entsprechenden Tabellen erstellt users
und customers
, aber ...
… Wie lässt sich diese Situation auf einer bestimmten SQL-Plattform am besten darstellen und implementieren? Ich habe zwei mögliche Lösungen in Betracht gezogen:
Fügen Sie in der
users
Tabelle diecustomer
Spalte hinzu, auf die entweder ein FOREIGN KEY-Verweiscustomers
oder eineNULL
Markierung verweisen kann .Fügen Sie in die
customers
Tabelle eineuser
Spalte (mit einerUNIQUE
Einschränkung festgelegt) ein, die auf dieusers
Tabelle verweist .
Ich habe bereits in einigen Foren eine ähnliche Frage gestellt, aber die Antwort lautete im Grunde "was auch immer Sie brauchen", "was auch immer Sie für zweckmäßig halten". Ich mag diese Art von Antwort nicht. Ich möchte stattdessen ein ernstes Stück DB-Theorie, eine fundierte Antwort. Wo kann ich über 1-0..1 Beziehungen lesen?
quelle