PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Fremdschlüssel des seriellen Typs – stellen Sie sicher, dass er immer manuell ausgefüllt wird

Ich würde vorschlagen:

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
);
  • Verwenden Sie keine CaMeL-Case-Namen. Lesen Sie das Handbuch über Bezeichner.
  • Verwenden Sie Eigennamen. Nie id oder name , die nicht beschreibend sind.
  • Der zugrunde liegende Typ eines serial ist integer . Machen Sie die referenzierende Spalte integer .
    Aufgrund der Fremdschlüsselreferenz region.country_id kann nur Werte enthalten, die in country.country_id vorhanden sind (oder NULL ). Ihre Überlegungen zu Werten> 2^31 sind unangebracht.
  • Demonstration einer kürzeren Syntax für die PK- und FK-Definition (optional). Lesen Sie das Handbuch zu CREATE TABLE .

Codebeispiel mit weiteren Ratschlägen: