Une clé étrangère référençant PK a-t-elle besoin de la contrainte NOT NULL?
Ne une Clé Étrangère référençant une Clé Primaire besoin de la contrainte not NULL dans une base de données PostgreSQL?
La base de données est normalisé et sera très grande. Je ne souhaite pas ajouter de contraintes qui vont ralentir les requêtes encore plus si ces requêtes sont inutiles.
source d'informationauteur WolfmanDragon | 2009-09-01
Vous devez vous connecter pour publier un commentaire.
Si vous voulez être en mesure de représenter un inconnu dans la FK colonne de cette table, puis le faire nullable, si elle doit avoir une valeur, il est Non Nulle.
Vous pouvez avoir autant de dossiers que vous le souhaitez dans la table de référence avec la valeur null FK valeurs. La contrainte unique sur les lignes dans la table référencée (Où le PK n'est) pas sur les lignes dans la table de référence (où FK est).
Une clé primaire doit être unique, et, idéalement, il devrait être choisi par la base de données, afin de limiter les problèmes de simultanéité, de sorte que, même si elle peut être unique, pour 1 enregistrement, l'enregistrement doit avoir une valeur.
Sinon, comment allez-vous savoir quelle ligne cette clé étrangère concerne si il n'y a plus qu'un seul match?
Donc, en tant que Nouveau dans la ville mentionné, NULL doit être valide, mais pour un enregistrement, comme l'unicité sera le plus grand problème.
EDIT: oups, mal compris la question.
J'ai mis nul sur les clés étrangères avant, mais si vous avez effacer en cascade par exemple, alors nul ne fonctionnera pas, sauf si vous avez la clé dans la table principale, avec une valeur null.