Sobes.tech
Middle

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:

  1. 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.

  2. 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.