PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Klucz obcy typu seryjnego - upewnij się, że zawsze wypełniany ręcznie

Proponuję:

CREATE TABLE country(
    country_id serial PRIMARY KEY
  , country    text NOT NULL
);

CREATE TABLE region(
    region_id  serial PRIMARY KEY
  , country_id int NOT NULL REFERENCES country
  , region     text NOT NULL
);
  • Nie używaj nazw spraw CaMeL. Przeczytaj instrukcję o identyfikatorach.
  • Użyj nazw własnych. Nigdy id lub name , które nie są opisowe.
  • Podstawowy typ serial to integer . Utwórz kolumnę odniesienia integer .
    Ze względu na odwołanie do klucza obcego region.country_id może przechowywać tylko wartości, które są obecne w country.country_id (lub NULL ). Twoje rozważania na temat wartości> 2^31 są nieuzasadnione.
  • Pokazanie krótszej składni dla definicji PK i FK (opcjonalnie). Przeczytaj instrukcję CREATE TABLE .

Przykładowy kod z dodatkowymi poradami:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zaktualizuj wiele kolumn, które zaczynają się od określonego ciągu

  2. Hibernacja „Odwrotność” w pliku mapowania

  3. Railsy zawierają zapytanie z warunkami, które nie zwracają wszystkich wyników z lewej tabeli

  4. Indeks, aby uzyskać liczbę wierszy tabeli PostgreSQL tylko do odczytu (niezmiennej)?

  5. Zasady nawiasów PostgreSQL, czy istnieje skrócony przewodnik?