gpt4 book ai didi

database - 应用程序是否应该自测其数据库

转载 作者:行者123 更新时间:2023-11-28 21:05:37 24 4
gpt4 key购买 nike

让一个中型业务应用程序绑定(bind)到一个数据库。此应用程序有许多影响多个表的业务规则。以这个简单的为例:

  • 数据库有名为 Person 的表, Customer , ProspectiveCustomer ,每个都有一个“事件”标志
  • 一个人可以是客户和/或潜在客户
  • 同一个人的客户和潜在客户不能同时处于事件状态
  • 如果此人不活跃,则客户或潜在客户无法活跃
  • 发票的问题和生命周期决定了谁是活跃的

  • 此类规则过于复杂,无法由数据库触发器强制执行,并且根据设计选择,没有集中式代码来完成这项肮脏的工作。然后总是有可能一个错误将数据库设置为不一致的状态,正如我们每天在测试时注意到的那样。

    由于我担心这种情况在生产中未被发现,我想知道编写一个检查数据库状态并报告任何不一致的脚本是否是个好主意。连同一些事件记录,这将有助于发现生产错误并在需要时帮助修复数据库。

    这种方法的唯一缺点是这些自测试脚本的额外开发时间(在我的情况下不可忽略)。 我错过了一些基本的东西吗?

    此外,如果编写了这些自测,它们在测试事件中也会非常有用,从而最大限度地减少开发它们的额外工作量。

    最佳答案

    如果您想在数据库级别执行此操作,您可能需要考虑使用检查约束。

    您可以在检查约束中执行多少操作可能会受到您使用的 RDBMS 的限制。

    此线程中 SQL Server 中的复杂检查约束示例:
    http://social.msdn.microsoft.com/Forums/en/sqldocumentation/thread/1d4cf16b-9b37-4eb5-b66b-a428487f42c9

    (编辑:最好在应用程序级别强制执行此操作,这可能是您的选择,也可能不是)

    关于database - 应用程序是否应该自测其数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14738099/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com