PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

masalah integritas relasi 'satu-ke-banyak' untuk rentang waktu

Dan dengan "stempel waktu" yang Anda maksudkan adalah periode waktu tertentu .

batasan pengecualian pada jenis rentang , dikombinasikan dengan kesetaraan pada barid (menggunakan modul tambahan btree_gist ) akan menjadi solusi sempurna.

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 &&)
);

Ini membutuhkan Postgres 9.2 atau lambat.

Terkait:

Manual ini memiliki contoh kode yang cocok!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menjalankan kueri secara dinamis di PL/pgSQL

  2. Rails:PG::UndefinedTable:ERROR:relasi ... tidak ada

  3. SALINAN JDBC dengan semut

  4. Bagaimana cara pg_restore

  5. 30 tabel dengan beberapa baris - TRUNCATE cara tercepat untuk mengosongkannya dan mengatur ulang urutan terlampir?