sql >> Databáze >  >> RDS >> PostgreSQL

Cizí klíč sériového typu - zajistěte, aby byl vždy vyplněn ručně

Navrhoval bych:

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
);
  • Nepoužívejte názvy případů CaMeL. Přečtěte si příručku o identifikátorech.
  • Používejte vlastní jména. Nikdy id nebo name , které nejsou popisné.
  • Základní typ serial je integer . Vytvořte odkazující sloupec integer .
    Vzhledem k odkazu na cizí klíč region.country_id může obsahovat pouze hodnoty, které jsou přítomny v country.country_id (nebo NULL ). Vaše úvahy o hodnotách> 2^31 jsou zbytečné.
  • Ukázka kratší syntaxe pro definici PK a FK (volitelné). Přečtěte si příručku na CREATE TABLE .

Příklad kódu s dalšími radami:



  1. 15 užitečných tipů pro ladění a optimalizaci výkonu MySQL/MariaDB

  2. Jak používat order by v Laravelu, když používá CASE WHEN?

  3. SQL Stále dostává chybu s ON UPDATE CASCADE

  4. Vztah MySQL jeden k mnoha:GROUP_CONCAT nebo JOIN nebo obojí?