Je suggérerais :
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'utilisez pas les noms de cas CaMeL. Lire le manuel sur les identifiants.
- Utilisez des noms propres. Jamais
id
ouname
, qui ne sont pas descriptifs. - Le type sous-jacent d'un
serial
estinteger
. Rendre la colonne de référenceinteger
.
En raison de la référence de clé étrangèreregion.country_id
ne peut contenir que des valeurs présentes danscountry.country_id
(ouNULL
). Vos considérations sur les valeurs> 2^31 sont inutiles. - Démonstration d'une syntaxe plus courte pour la définition PK et FK (facultatif). Lire le manuel sur
CREATE TABLE
.
Exemple de code avec plus de conseils :