A „časovým razítkem“ zřejmě myslíte určité časové období .
omezení vyloučení
na typ rozsahu
, v kombinaci s rovností na barid
(s využitím dodatečného modulu btree_gist
) by bylo perfektní řešení.
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 &&)
);
To vyžaduje Postgres 9.2 nebo později.
Související:
Příručka obsahuje příklad odpovídajícího kódu!