Oracle
 sql >> Base de données >  >> RDS >> Oracle

Existe-t-il une raison d'utiliser à la fois la clé primaire et la clé unique sur le même champ ?

Pour une table résolvant un plusieurs à plusieurs, il serait courant d'avoir une clé en deux parties (comme indiqué par Quassnoi). Il est également très probable qu'il ait besoin d'index prenant en charge l'accès via l'un ou l'autre des parents.

Si vous avez, par exemple, des tables PERSON, ADDRESS et PERSON_ADDRESS, votre table PERSON_ADDRESS peut avoir la clé primaire de (PERSON_ID, ADDRESS_ID) et un index de support. Vous auriez également un autre index sur (ADDRESS_ID,PERSON_ID), et vous en feriez probablement un index UNIQUE (car il s'agit d'une combinaison unique de champs).

Il est également possible que votre DBA ait une manière particulière de générer des tables qui commence par un index UNIQUE sur les champs de clé primaire suivi de la création de la contrainte PRIMARY KEY. Cela peut apparaître dans certains outils graphiques de la manière que vous suggérez.