Cum se implementează o relație unu la unu într-o bază de date?
sobes.tech AI
Răspuns de la AI
Relația "unu la unu" într-o bază de date relațională se implementează printr-o restricție unică și o cheie externă. Cele mai comune metode:
-
Utilizarea unei chei primare comune: Două tabele utilizează același câmp ca și cheie primară, care este, de asemenea, o cheie externă referitoare la cheia primară a celeilalte tabele.
-
Utilizarea unei chei externe unice: Într-una dintre tabele se creează un câmp care este o cheie externă referitoare la cheia primară a alteia, și se aplică o restricție de unicitate pe acest câmp.
Exemplu cu cheie primară comună (în SQL Server):
CREATE TABLE UserProfiles (
UserId INT PRIMARY KEY,
FirstName NVARCHAR(50),
LastName NVARCHAR(50)
);
CREATE TABLE UserDetails (
UserId INT PRIMARY KEY, // Este și cheia primară și cheia externă
Address NVARCHAR(100),
Phone NVARCHAR(20),
CONSTRAINT FK_UserDetails_UserProfiles FOREIGN KEY (UserId) REFERENCES UserProfiles(UserId)
);
Exemplu cu cheie externă unică (în SQL Server):
CREATE TABLE Users (
UserId INT PRIMARY KEY,
Username NVARCHAR(50) UNIQUE
);
CREATE TABLE UserInfo (
UserInfoId INT PRIMARY KEY, // Cheia primară a UserInfo
UserId INT UNIQUE, // Cheie externă unică referitoare la Users
Email NVARCHAR(100),
CONSTRAINT FK_UserInfo_Users FOREIGN KEY (UserId) REFERENCES Users(UserId)
);
Alegerea între aceste abordări depinde de semantica datelor și de comoditatea accesului. Conectarea prin cheie primară comună este adesea folosită atunci când datele din a doua tabelă sunt o extensie opțională a primei. Cheia externă unică este mai flexibilă dacă cheile primare ale tabelelor nu coincid inițial.