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
lubname
, które nie są opisowe. - Podstawowy typ
serial
tointeger
. Utwórz kolumnę odniesieniainteger
.
Ze względu na odwołanie do klucza obcegoregion.country_id
może przechowywać tylko wartości, które są obecne wcountry.country_id
(lubNULL
). 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: