Sobes.tech
Junior

Jak przechowywać unikalne informacje dla każdego elementu w tabeli relacyjnej?

sobes.tech AI

Odpowiedź od AI

W relacyjnej bazie danych unikalność rekordu w tabeli jest określana przez klucz główny. Każdy wiersz musi mieć unikalną wartość w kolumnie (lub zestawie kolumn), wyznaczonych jako klucz główny. To zapewnia, że można jednoznacznie zidentyfikować każdy rekord.

Oto kilka sposobów zapewnienia unikalności:

  1. Autoinkrementujący klucz główny: Najczęściej stosowane podejście. Tworzy się pole całkowite, które automatycznie się zwiększa dla każdego nowego rekordu.

    CREATE TABLE uzytkownicy (
        id INTEGER PRIMARY KEY AUTOINCREMENT, // Unikalny automatycznie generowany ID
        nazwa_uzytkownika TEXT,
        email TEXT UNIQUE // Dodatkowa unikalność dla email
    );
    
  2. UUID (Uniwersalny Unikalny Identyfikator): Jeśli trzeba generować unikalne identyfikatory po stronie klienta lub w rozproszonym środowisku, można użyć UUID.

    CREATE TABLE produkty (
        id TEXT PRIMARY KEY, // Unikalny UUID w formacie tekstowym
        nazwa TEXT,
        cena REAL
    );
    
  3. Klucz naturalny: Jeśli unikalność jest gwarantowana przez jedno lub kilka istniejących pól danych.

    CREATE TABLE Kraje (
        iso_code TEXT PRIMARY KEY, // Kod kraju jest unikalny na świecie
        nazwa TEXT
    );
    
  4. Klucz złożony: Kombinacja kilku kolumn w celu zapewnienia unikalności rekordu.

    CREATE TABLE PozycjeZamowienia (
        order_id INTEGER,
        product_id INTEGER,
        quantity INTEGER,
        PRIMARY KEY (order_id, product_id) // Para order_id + product_id jest unikalna
    );
    

Wybór metody zależy od wymagań dotyczących identyfikacji danych. Klucz główny jest najważniejszy.