Jag skulle föreslå:
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
);
- Använd inte CaMeL-casenamn. Läs manualen om identifierare.
- Använd egennamn. Aldrig
id
ellername
, som inte är beskrivande. - Den underliggande typen av en
serial
ärinteger
. Gör referenskolumneninteger
.
På grund av den främmande nyckelreferensenregion.country_id
kan bara innehålla värden som finns icountry.country_id
(ellerNULL
). Dina överväganden om värden> 2^31 är inte påkallade. - Demonstrerar kortare syntax för PK- och FK-definition (valfritt). Läs manualen på
CREATE TABLE
.
Kodexempel med fler råd: