【问题标题】:Implement deferrable validations实施可延期的验证
【发布时间】:2012-06-04 15:32:17
【问题描述】:

我面临着这个任务:

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

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

有人知道如何实施草稿模式的好方法吗? 由于我与客户的合同,非关系数据库不是这种情况。

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

【问题讨论】:

  • 草稿模式是否需要使用原始数据?您可以直接创建另一个数据库,复制第一个数据库,没有任何限制。
  • 我可以使用数据库的副本 - 但我不喜欢这种方法,因为它需要复制粘贴方法 - 关系数据库应该是重复数据的解决方案。

标签: database relational-database data-modeling


【解决方案1】:

简单回答:

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

【讨论】:

    猜你喜欢
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 2018-08-30
    相关资源
    最近更新 更多