Eu sugeriria:
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
);
- Não use nomes de casos CaMeL. Leia o manual sobre identificadores.
- Use nomes próprios. Nunca
id
ouname
, que não são descritivos. - O tipo subjacente de um
serial
éinteger
. Faça a coluna de referênciainteger
.
Devido à referência de chave estrangeiraregion.country_id
só pode conter valores presentes emcountry.country_id
(ouNULL
). Suas considerações sobre valores> 2^31 são desnecessárias. - Demonstrando sintaxe mais curta para definição de PK e FK (opcional). Leia o manual sobre
CREATE TABLE
.
Exemplo de código com mais conselhos: