假设我有一个Products
表,ProductsCategory
表和一个Category
表。
ProductsCategory
表格有两列:ProductID
和CategoryID
。我应该在两列上使用复合主键还是唯一索引?
此外,如果我使用索引,我可以将其作为唯一索引或密钥。
答案 0 :(得分:8)
也可以使用复合键 - 当您已经拥有复合主键的唯一性语义时,无需添加唯一索引。
答案 1 :(得分:0)
您必须使用on delete cascade选项创建双向外键。 因为如果删除其中一个类别,则必须删除ProductCategory上的关系行。
我的意思是你可以这样使用:
alter table ProductsCategory add constraint ForeignKey1 foreign key (ProductId) references Products (ID) ON DELETE CASCADE;
alter table ProductsCategory add constraint ForeignKey2 foreign key (CategoryId) references Category (ID) ON DELETE CASCADE;