Comment implémenter une relation un à un dans une base de données?
sobes.tech IA
Réponse de l'IA
La relation "un à un" dans une base de données relationnelle est réalisée à l'aide d'une contrainte unique et d'une clé étrangère. Les méthodes les plus courantes :
-
Utilisation d'une clé primaire commune : Deux tables utilisent le même champ comme clé primaire, qui est également une clé étrangère référant à la clé primaire de l'autre table.
-
Utilisation d'une clé étrangère unique : Dans l'une des tables, un champ est créé comme clé étrangère référant à la clé primaire de l'autre table, avec une contrainte d'unicité appliquée à ce champ.
Exemple avec une clé primaire commune (en SQL Server) :
CREATE TABLE UserProfiles (
UserId INT PRIMARY KEY,
FirstName NVARCHAR(50),
LastName NVARCHAR(50)
);
CREATE TABLE UserDetails (
UserId INT PRIMARY KEY, // C'est aussi la clé primaire et la clé étrangère
Address NVARCHAR(100),
Phone NVARCHAR(20),
CONSTRAINT FK_UserDetails_UserProfiles FOREIGN KEY (UserId) REFERENCES UserProfiles(UserId)
);
Exemple avec une clé étrangère unique (en SQL Server) :
CREATE TABLE Users (
UserId INT PRIMARY KEY,
Username NVARCHAR(50) UNIQUE
);
CREATE TABLE UserInfo (
UserInfoId INT PRIMARY KEY, // Clé primaire de UserInfo
UserId INT UNIQUE, // Clé étrangère unique référant à Users
Email NVARCHAR(100),
CONSTRAINT FK_UserInfo_Users FOREIGN KEY (UserId) REFERENCES Users(UserId)
);
Le choix entre ces approches dépend de la sémantique des données et de la commodité d'accès. La connexion par clé primaire commune est souvent utilisée lorsque les données de la deuxième table sont une extension facultative de la première. La clé étrangère unique est plus flexible si les clés primaires des tables ne correspondent pas initialement.