我正在做一个数据库模型,其中产品可以有两个不同的属性,但其中一个排除了另一个。例如,如果为产品 A 启用了属性 1,则此产品不能启用属性 2。
如何实现此条件?我考虑过使用触发器来启用禁用另一个的布尔字段,但我不知道是否有选项可以通过数据建模来做到这一点。
我正在使用的rdbms是postgres sql。
谢谢。
使用检查约束,例如:
create table my_table(
id integer primary key,
property1 boolean,
property2 boolean,
check (not (property1 and property2))
);