Considérez un prices
tableau avec ces colonnes:
id integer primary key
product_id integer -- foreign key
start_date date not null
end_date date not null
quantity integer
price numeric
J'aimerais que la base de données applique la règle selon laquelle un produit ne peut avoir qu'un seul prix pour une quantité spécifique dans une plage de dates (via where <date> BETWEEN start_date AND end_date
).
Ce type de contrainte basée sur la plage est-il faisable?
daterange
soit exactement la même chose car c'est une limite inférieure exclusive, mais c'est facile à corriger. Dois-je vraiment migrer mes données pour utiliser undaterange
type de colonne (peut en faire une question distincte si c'est mieux) ou cette chose à deux colonnes est-elle raisonnable?