我有一个描述多对一关系的表,比如图片和相册之间的关系。我希望能够为每个专辑选择一张且只有一张图片作为专辑的封面图片。现在,表格是这样的:
AlbumID int primary key,
PictureID int,
IsCover bool
假设我不想更改整体架构(解决方案可能是将“是覆盖”关系移动到另一个表,定义一对一关系,但最好不要更改已经实现的查询通过添加另一个表),有没有办法强制所有具有相同 AlbumID BUT ONE 的条目都将 IsCover 设置为 false?
我正在寻找服务器端解决方案。我正在使用 Microsoft SQL Server 2012。这里不能应用 UNIQUE 约束,否则每张专辑我只能有一个封面和一个非封面。我已经在我的应用程序中实现了检查,但我真的希望有一个额外的安全层。
提前致谢。