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
idellername, som inte är beskrivande. - Den underliggande typen av en
serialärinteger. Gör referenskolumneninteger.
På grund av den främmande nyckelreferensenregion.country_idkan 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: