我正在使用MySQL,我有三个表,一个任务表,一个产品表和一个描述两者之间关系的表:每个产品由几个任务组成,每个任务可以在多个产品中找到.
描述两者之间关系的表有两个主键,ProductID和TaskID也都是外键.在这个表中,我有一个名为TaskOrder的字段,对于给定的Product,它列出了必须执行任务的顺序.
我想要的是,对于任何产品,你不能拥有相同TaskOrder的两个任务,但我不能只将TaskOrder设置为唯一,因为不同的产品将(并且应该)具有TaskOrder的重复值
有办法做到这一点吗?
你想要一个UNIQUE约束:
create table ProductTasks ( ProductID ... , TaskId ... , TaskOrder ... , primary key (ProductId, TaskId) , unique (ProductId, TaskOrder) );