PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Clé étrangère de type série - assurez-vous qu'elle est toujours remplie manuellement

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 ou name , qui ne sont pas descriptifs.
  • Le type sous-jacent d'un serial est integer . Rendre la colonne de référence integer .
    En raison de la référence de clé étrangère region.country_id ne peut contenir que des valeurs présentes dans country.country_id (ou NULL ). 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 :