Yuc*_*uck 0 t-sql sql-server database-design
使用SQL Server 2K8 R2,我有两个相关的表 - 成员和问卷调查表.每个表都有一个名为ID的BigInt PK.调查问卷有会员ID,以便与正在填写表格的成员联系.随着时间的推移,会员可以多次完成调查问卷.业务要求是每个成员每年最多完成一次问卷调查.AFAIK这个使用简单无法解决CHECK CONSTRAINT.
这样做有"干净"的方法吗?我希望避免做类似以下的事情:
CREATE TRIGGER tr_Questionnaire_Insert
ON Questionnaire
INSTEAD OF INSERT
AS BEGIN
-- Check for a violation of once questionnaire per calendar year and if found, call RAISERROR
-- Otherwise continue with INSERT
END;
Run Code Online (Sandbox Code Playgroud)
我不想使用这种方法的原因主要是因为它需要我(或者长期维持这个解决方案的任何人)记住如果调查问卷的模式应该改变的话保持触发.