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 usersund 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
usersTabelle diecustomerSpalte hinzu, auf die entweder ein FOREIGN KEY-Verweiscustomersoder eineNULLMarkierung verweisen kann .Fügen Sie in die
customersTabelle eineuserSpalte (mit einerUNIQUEEinschränkung festgelegt) ein, die auf dieusersTabelle 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?