Sobes.tech
Middle

Jak na poziomie fizycznym zaimplementować relację jeden do jednego między dwoma tabelami?

sobes.tech AI

Odpowiedź od AI

Relacja jeden do jednego między dwoma tabelami na poziomie fizycznym jest realizowana na kilka sposobów:

  1. Wspólny klucz główny — obie tabelki mają taką samą wartość klucza głównego, a w jednej z nich ten klucz jednocześnie pełni funkcję klucza obcego do drugiej tabeli.

  2. Unikalny klucz obcy — w jednej tabeli tworzy się klucz obcy do innej tabeli z ograniczeniem UNIQUE, aby zagwarantować, że każdemu rekordowi odpowiada nie więcej niż jeden rekord w tabeli powiązanej.

Przykład z wspólnym kluczem głównym:

CREATE TABLE Osoba (
    OsobaID INT PRIMARY KEY,
    Imię VARCHAR(100)
);

CREATE TABLE Paszport (
    OsobaID INT PRIMARY KEY,
    NumerPaszportu VARCHAR(50),
    FOREIGN KEY (OsobaID) REFERENCES Osoba(OsobaID)
);

Tutaj dla każdego rekordu w Osoba może być nie więcej niż jeden rekord w Paszport, i odwrotnie.