PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Външен ключ от сериен тип - гарантира, че винаги се попълва ръчно

Бих предложил:

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
);
  • Не използвайте CaMeL имена на големи букви. Прочетете ръководството за идентификаторите.
  • Използвайте правилни имена. Никога id или name , които не са описателни.
  • Основният тип на serial е integer . Направете препращащата колона integer .
    Поради референтния външен ключ region.country_id може да съдържа само стойности, които присъстват в country.country_id (или NULL ). Вашите съображения относно стойности> 2^31 са ненужни.
  • Демонстриране на по-кратък синтаксис за PK и FK дефиниция (по избор). Прочетете ръководството за CREATE TABLE .

Примерен код с още съвети:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Актуализирайте множество записи в една транзакция ActiveRecord в Rails

  2. Пълнотекстово търсене на подниз в PostgreSQL

  3. pg_stat_activity не се актуализира в рамките на процедура или транзакция

  4. PostgreSQL:експортирайте получените данни от SQL заявка в Excel/CSV

  5. Детерминиран ред на сортиране за прозоречни функции