Ինչպես իրականացնել միավոր-մեկ հարաբերություն տվյալների բազայում?
sobes.tech AI
Պատասխան AI-ից
Միայն-մեկ հարաբերությունը ռելացիոնալ տվյալների բազայում իրականացվում է եզակի սահմանափակմամբ և արտաքին բանալիով։ Ամենատարածված մեթոդները՝
-
Համատեղ հիմնական բանալի օգտագործում: Երկու աղյուսակները օգտագործում են նույն դաշտը որպես հիմնական բանալի, որը նաև արտաքին բանալի է, հղում կատարելով մյուս աղյուսակի հիմնական բանալուն։
-
Ենթակա արտաքին բանալի օգտագործում: Մեկ աղյուսակում ստեղծվում է դաշտ, որը արտաքին բանալի է, հղում կատարելով մյուս աղյուսակի հիմնական բանալուն, և այս դաշտին կիրառվում է եզակիության սահմանափակում։
Օրինակ՝ ընդհանուր հիմնական բանալիով (SQL Server-ում)՝
CREATE TABLE UserProfiles (
UserId INT PRIMARY KEY,
FirstName NVARCHAR(50),
LastName NVARCHAR(50)
);
CREATE TABLE UserDetails (
UserId INT PRIMARY KEY, // Սա նաև հիմնական բանալու և արտաքին բանալի է
Address NVARCHAR(100),
Phone NVARCHAR(20),
CONSTRAINT FK_UserDetails_UserProfiles FOREIGN KEY (UserId) REFERENCES UserProfiles(UserId)
);
Օրինակ՝ եզակի արտաքին բանալիով (SQL Server-ում)՝
CREATE TABLE Users (
UserId INT PRIMARY KEY,
Username NVARCHAR(50) UNIQUE
);
CREATE TABLE UserInfo (
UserInfoId INT PRIMARY KEY, // UserInfo-ի հիմնական բանալին
UserId INT UNIQUE, // Ենթակա արտաքին բանալի, հղում կատարելով Users-ին
Email NVARCHAR(100),
CONSTRAINT FK_UserInfo_Users FOREIGN KEY (UserId) REFERENCES Users(UserId)
);
Այս մոտեցումների միջև ընտրությունը կախված է տվյալների սիմանթիկայից և մուտքի հարմարությունից։ Համատեղ հիմնական բանալիով կապը հաճախ օգտագործվում է, երբ երկրորդ աղյուսակի տվյալները նախնականորեն լրացուցիչ են առաջինի համար։ Ենթակա արտաքին բանալի ավելի ճկուն է, եթե աղյուսակների հիմնական բանալիները սկզբում չեն համընկնում։