sql >> Database teknologi >  >> RDS >> PostgreSQL

Fremmednøgle af seriel type - sørg for, at den altid udfyldes manuelt

Jeg vil foreslå:

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
);
  • Brug ikke CaMeL-sagnavne. Læs manualen om identifikatorer.
  • Brug egennavne. Aldrig id eller name , som ikke er beskrivende.
  • Den underliggende type af en serial er integer . Lav referencekolonnen til integer .
    På grund af den fremmede nøglereference region.country_id kan kun indeholde værdier, der er til stede i country.country_id (eller NULL ). Dine overvejelser om værdier> 2^31 er ikke nødvendige.
  • Demonstrerer kortere syntaks for PK- og FK-definition (valgfrit). Læs manualen på CREATE TABLE .

Kodeeksempel med flere råd:



  1. Mokka Test forbindelse til DB

  2. Hvordan bruger jeg en MySQL brugerdefineret funktion fra PHP?

  3. PreparedStatement er null i Where-sætning uden if-betingede (dynamisk forespørgsel) eller volapyk-værdier

  4. Ydeevnestraf for indlejrede mysql-forespørgsler