我的应用程序允许用户每周在另一个表中输入一个,并且只有一个。实施此想法会引起通常的问题,我可能会在检查ifExists
另一个连接后提交一条记录,并最终得到两条记录。我不能乐观地锁定不存在的记录,并希望避免对整个表进行悲观的锁定。
那么,这里最好的解决方案是什么?每周为所有用户创建记录吗?
创建第二个表,其中包含Weeks(例如WeekId,StartDate,EndDate)。
然后在您的第一个表中创建两个外键关系,一个与User表建立关联,第二个与Week表建立关联。然后添加一个唯一的约束,以确保每个用户每周仅获得一条记录。
ALTER TABLE dbo.UserWeeks
ADD CONSTRAINT uq_UserWeeks UNIQUE(UserId, WeekId);
由于唯一约束,第二次插入将失败。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句