Sobes.tech
Middle

Ma'lumotlar bazasida birga bir munosabatni qanday amalga oshirish mumkin?

sobes.tech AI

AIdan javob

Relatsiya "bir-biriga" relatsion bazada yagona cheklash va tashqi kalit yordamida amalga oshiriladi. Eng keng tarqalgan usullar:

  1. Umumiy birinchi kalitdan foydalanish: Ikki jadval bir xil maydonni birinchi kalit sifatida ishlatadi, bu maydon shuningdek, boshqa jadvalning birinchi kalitiga murojaat qiluvchi tashqi kalit bo'lib xizmat qiladi.

  2. Yagona tashqi kalitdan foydalanish: Bir jadvalda, boshqa jadvalning birinchi kalitiga murojaat qiluvchi tashqi kalit bo'lib xizmat qiladigan maydon yaratiladi va unga yagona cheklov qo'yiladi.

Misol umumiy birinchi kalit bilan (SQL Serverda):

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

CREATE TABLE UserDetails (
    UserId INT PRIMARY KEY, // Bu ham birinchi kalit va tashqi kalit
    Address NVARCHAR(100),
    Phone NVARCHAR(20),
    CONSTRAINT FK_UserDetails_UserProfiles FOREIGN KEY (UserId) REFERENCES UserProfiles(UserId)
);

Misol yagona tashqi kalit bilan (SQL Serverda):

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

CREATE TABLE UserInfo (
    UserInfoId INT PRIMARY KEY, // UserInfo ning birinchi kaliti
    UserId INT UNIQUE,         // Yagona tashqi kalit, Users ga murojaat qiladi
    Email NVARCHAR(100),
    CONSTRAINT FK_UserInfo_Users FOREIGN KEY (UserId) REFERENCES Users(UserId)
);

Tanlov bu yondashuvlar ma'lumotlarning semantikasi va kirish qulayligiga bog'liq. Umumiy birinchi kalit orqali bog'lanish odatda ikkinchi jadval ma'lumotlari birinchi jadvalning ixtiyoriy kengaytmasi bo'lsa ishlatiladi. Yagona tashqi kalit esa, jadvalning birinchi kalitlari dastlab mos kelmasa, yanada moslashuvchan bo'ladi.