Sobes.tech
Middle

Маалыматтар базасында бир-бирине байланыштуу бирге бирге байланышты кантип ишке ашыруу керек?

sobes.tech AI

AIден жооп

«Бир-бирине» муносабатлари реляцион маълумотлар базасида уникал чеклов ва ташқи калит ёрдамида амалга оширилади. Энг кўп учрайдиган усуллар:

  1. Умумий биринчи калитдан фойдаланиш: Икки жадвал бир хил майдонни биринчи калит сифатида қўллайди, у ҳам бошқа жадвалнинг биринчи калитига ишора қилувчи ташқи калит ҳисобланади.

  2. Уникал ташқи калитдан фойдаланиш: Бир жадвалда бошқа жадвалнинг биринчи калитига ишора қилувчи майдон яратилади ва унга уникал чеклов қўйилади.

Масалан, умумий биринчи калит билан (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)
);

Бу ёндашувлар орасида танлов маълумотларнинг семантикаси ва кириш қулайлигига боғлиқ. Умумий биринчи калит орқали боғланиш кўпинча, иккинчи жадвал маълумотлари биринчи жадвалнинг ижтимоий кенгайтмаси бўлганда қўлланилади. Уникал ташқи калит эса, агар жадвалларнинг биринчи калитлари бошланғичда мос келмаса, кўпроқ мослашувчан бўлади.