2012-05-30 101 views
1

我面臨的任務:實施延期的驗證

輸入: 數據模型,即通過20個呈現巨大的實體 - 30關係表(SQL數據庫)。 有很多約束+參考數據鏈接。

任務: 添加一個草稿模式支持,這意味着我可以保存對象在任何狀態(沒有填寫所有必要的字段,破壞約束等)當我發佈對象時,我必須對所有約束進行驗證。

有沒有人知道如何實施草稿模式的好方法? 由於我與客戶的合同,非關係型數據庫並非如此。

我一直在想: 重複的表,刪除所有重複項中的驗證以及發佈時將行移動到同一事務中的原始表。這種方法聞起來很多。 所有對象都可以在我的系統中序列化爲XML,我可以將它們的狀態保存到DB wile草稿模式中,再次聞到不好。

+0

模式是否與草案需要與原始數據的工作?你可以創建另一個數據庫,複製第一個,沒有限制。 –

+0

我可以使用數據庫的副本 - 但我不喜歡這種方法,但它需要複製粘貼方法 - 關係數據庫應該是重複數據的解決方案。 – Stas

回答

1

答案很簡單:

CHECK (is_draft OR (condition_one AND condition_two AND condition_three))