Disons que je conçois une base de données pour un scénario où il existe une relation un à zéro ou un (1-0..1). Par exemple:
- Il existe un ensemble d' utilisateurs , et certains utilisateurs peuvent également être des clients .
J'ai donc créé les deux tableaux correspondants, users
et customers
, mais…
… Quelle est la meilleure façon de représenter et de mettre en œuvre cette situation dans une plate-forme SQL donnée? J'ai envisagé deux solutions possibles:
Dans le
users
tableau, ajoutez lacustomer
colonne qui peut être une référence FOREIGN KEYcustomers
ou uneNULL
marque.Dans le
customers
tableau, incluez uneuser
colonne (définie avec uneUNIQUE
contrainte) qui pointe vers leusers
tableau.
J'ai déjà posé une question similaire dans certains forums, mais la réponse était essentiellement «tout ce dont vous avez besoin», «tout ce que vous pensez commode». Je n'aime pas ce genre de réponse. Je veux plutôt un morceau sérieux de théorie DB, une réponse bien fondée. Où puis-je lire sur les relations 1-0..1?
la source