说我有一个布局如下表:确保在MS SQL服务器,数据库级正确的数据
Id Int PRIMARY KEY IDENTITY
DateFrom datetime NOT NULL
DateTo datetime NOT NULL
UserId Int
用户ID是外键的用户表,以及显然有更多的数据是不相关的这个问题。
我想要做的是确保每个用户不能有任何重叠的“时期”,也就是说,我们有一行用户1的数据,从2009年5月15日到2009年5月18日,那么数据库中不能包含任何其他行(2009年5月15日至18日,包括这两个日期)中的任何行。
我如何以最好的方式解决这个问题?我最初的想法是使用触发器,但我不确定如何和/或是否有更好的方式来做更像这样的“自定义”数据验证?
我正在处理这个问题,编写INSERT触发器,同时开始考虑如何处理UPDATE的想法(因为它需要运行所有它对最终结果的检查),但我正在运行进入更新触发器的死胡同,任何提示? – kastermester 2009-05-20 16:40:48