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)
);

Бул ыкмалардын арасынан тандоо маалыматтардын семантикасына жана кирүү ыңгайлуулугуна көз каранды. Жалпы биринчи ачкыч аркылуу байланыш көбүнчө, экинчи таблица маалыматы биринчи таблицанын милдеттүү эмес кеңейтүүсү болсо колдонулат. Уникалдуу чет элдик ачкыч болсо, таблицалардын биринчи ачкычтары баштапкы учурда дал келбесе, көбүрөөк ийкемдүү болот.