說我有一個佈局如下表:確保在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