强制执行多种多对多关系的好方法?

时间:2014-03-14 04:51:36

标签: sql-server sql-server-2012 relational-database

例如,有两个表具有多对多关系。

create table Item (ID int primary key, .....)
create table Category (ID int primary key, ......)

还有一个关系表

create table ItemCategory (
    ItemID int not null foreign key references Item (ID), 
    CategoryID int not null foreign key references Category (ID) )

是否可以添加约束以确保Item至少有一个Category?也就是说,ItemCategory表中每个项目必须至少有一行。

1 个答案:

答案 0 :(得分:1)

不在桌面/ fk级别。

另一种方法是通过也插入Item的存储过程执行所有ItemCategory插入,并通过不会删除的存储过程执行所有ItemCategory删除它是项目的最后一条记录。