Og med "tidsstempel" ser du ud til at mene en vis periode .
En ekskluderingsbegrænsning
på en intervaltype
, kombineret med lighed på barid
(ved at bruge det ekstra modul btree_gist
) ville være den perfekte løsning.
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 &&)
);
Dette kræver Postgres 9.2 eller senere.
Relateret:
Manualen har et matchende kodeeksempel!