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

проблем с целостта на връзката „един към много“ за времеви диапазони

И под „клеймо за време“ изглежда имате предвид определен период от време .

ограничение за изключване на тип диапазон , комбинирано с равенство на barid (използване на допълнителния модул btree_gist ) би било идеалното решение.

CREATE EXTENSION btree_gist;  -- needed once per database

CREATE TABLE foo (
  fooid  serial PRIMARY KEY
, barid  integer NOT NULL REFERENCES bar(barid) 
, bazid  integer NOT NULL REFERENCES baz(bazid)
, time_range tsrange NOT NULL           -- replaces startdate  & enddate 
, EXCLUDE USING gist (barid WITH =, time_range WITH &&)
);

Това изисква Postgres 9.2 или по-късно.

Свързани:

Ръководството има пример за съответстващ код!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на безакцент с SearchVector и SearchQuery в Django

  2. postgresql няма поддръжка за parameterizd заявки

  3. Промяна на базата данни за разработка на Django от SQLite по подразбиране към PostgreSQL

  4. SQL:Намерете най-дългия общ низ между редовете

  5. PostgreSQL схеми/пространства от имена с Django