Sugeriría:
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
);
- No utilice nombres de casos CaMeL. Lea el manual sobre identificadores.
- Utilice nombres propios. Nunca
id
oname
, que no son descriptivos. - El tipo subyacente de un
serial
esinteger
. Haga que la columna de referencia seainteger
.
Debido a la referencia de clave externaregion.country_id
solo puede contener valores que están presentes encountry.country_id
(oNULL
). Sus consideraciones sobre los valores> 2^31 son innecesarias. - Demostración de una sintaxis más corta para la definición de PK y FK (opcional). Lea el manual en
CREATE TABLE
.
Ejemplo de código con más consejos: