实施可延迟的验证

时间:2012-05-30 11:41:21

标签: database relational-database data-modeling

我面临着这个任务:

输入: 数据模型,通过20-30个关系表(SQL DB)呈现巨大的实体。 有很多限制+参考数据链接。

任务: 添加草稿模式支持,这意味着我可以在任何状态下保存对象(不填写所有必填字段,打破约束等)。当我发布对象时,我必须针对所有约束验证它。

有人知道如何实施草稿模式的好方法吗? 由于我与客户的合约,非关系数据库并非如此。

我一直在考虑: 重复表,从所有重复项中删除验证,并在同一事务中将发布移动行删除到原始表。这种方法闻起来很多。 所有对象都可以在我的系统中序列化为XML,我可以将它们的状态保存到DB wile草稿模式,再次闻起来不太好。

1 个答案:

答案 0 :(得分:1)

简单回答:

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