Sobes.tech
Middle

Hogyan valósítható meg egy egy az egyben kapcsolat az adatbázisban?

sobes.tech MI

Válasz az MI-től

Az "egy-hez-egy" kapcsolat egy relációs adatbázisban egyedi korlátozás és idegen kulcs segítségével valósítható meg. A leggyakoribb módszerek:

  1. Közös elsődleges kulcs használata: Két tábla ugyanazt a mezőt használja elsődleges kulcsként, amely egyben idegen kulcsként is működik, és hivatkozik a másik tábla elsődleges kulcsára.

  2. Egyedi idegen kulcs használata: Az egyik táblában létrehozunk egy olyan mezőt, amely idegen kulcsként hivatkozik egy másik tábla elsődleges kulcsára, és erre a mezőre egyediségi korlátozást alkalmazunk.

Példa közös elsődleges kulccsal (SQL Server):

CREATE TABLE UserProfiles (
    UserId INT PRIMARY KEY,
    FirstName NVARCHAR(50),
    LastName NVARCHAR(50)
);

CREATE TABLE UserDetails (
    UserId INT PRIMARY KEY, // Ez egyben elsődleges kulcs és idegen kulcs
    Address NVARCHAR(100),
    Phone NVARCHAR(20),
    CONSTRAINT FK_UserDetails_UserProfiles FOREIGN KEY (UserId) REFERENCES UserProfiles(UserId)
);

Példa egyedi idegen kulccsal (SQL Server):

CREATE TABLE Users (
    UserId INT PRIMARY KEY,
    Username NVARCHAR(50) UNIQUE
);

CREATE TABLE UserInfo (
    UserInfoId INT PRIMARY KEY, // UserInfo elsődleges kulcsa
    UserId INT UNIQUE, // Egyedi idegen kulcs, amely a Users-re hivatkozik
    Email NVARCHAR(100),
    CONSTRAINT FK_UserInfo_Users FOREIGN KEY (UserId) REFERENCES Users(UserId)
);

A választás ezek között az megközelítések között az adatok szemantikájától és az elérhetőség kényelmétől függ. A közös elsődleges kulcs szerinti kapcsolat gyakran akkor használatos, amikor a második tábla adatai opcionális kiterjesztése az elsőnek. Az egyedi idegen kulcs rugalmasabb, ha a táblák elsődleges kulcsai kezdetben nem egyeznek meg.