我有一个 MSSQL Server 2008 表,它将多张照片与房屋相关联,如下所示:
HouseID - with foreign key to House table
PhotoID - with foreign key to Photo table
一切都很好,对 PhotoID 有一个独特的约束,因此一张照片不能与多个房子相关联。
我想为房屋记录指定一张默认照片。该表是这样更新的
HouseID
PhotoID
isDefault
问题是房子的一组照片只能有一个 isDefault = 1。
在 MSSQL Server 2008 中,如何确保给定的 House ID 只有一个 isDefault = 1,而其他记录是 isDefault = 0?使用触发器更好,还是有更好的方法?如果是触发器,对确保优化的语法有什么建议吗?
最后,我需要它来处理插入和更新事件。
更新:
以下工作就像一个魅力。注释?
CREATE VIEW HousePhoto_isDefault AS
SELECT yourSchema.HousePhoto.houseID, yourSchema.HousePhoto.isDefault
FROM yourSchema.HousePhoto WHERE isDefault = 1
GO
CREATE UNIQUE CLUSTERED INDEX idx_HousePhoto_isDefault
ON HousePhoto_isDefault (houseID)
GO