gpt4 book ai didi

database - 与在数据库中相比,以编程方式强制执行外键的优缺点

转载 作者:太空狗 更新时间:2023-10-30 01:49:55 26 4
gpt4 key购买 nike

仅仅让数据库强制执行外键,给开发带来了很大的麻烦。特别是在单元测试期间,由于外键约束,我不能删除表,我需要以不会触发外键约束警告的顺序创建表。实际上,我看不出让数据库强制执行外键约束有多大意义。如果应用程序设计得当,除了选择查询外,不应进行任何手动数据库操作。我只是想确保我不会因为在数据库中没有外键约束而将其完全留给应用程序负责,从而让自己陷入困境。我错过了什么吗?

附言如果底层域对象的结构已被修改,我的真实单元测试(不是那些使用模拟的单元测试)将删除现有表。

最佳答案

根据我的经验,如果您不在数据库中强制执行外键,那么最终(假设数据库相对较大且使用频繁)您将得到孤立的记录。这可能以多种方式发生,但它似乎总是会发生。

如果索引正确,外键不应该有任何性能优势。

所以问题是,数据库中存在孤立记录的潜在损害/麻烦/支持成本/财务成本是否超过开发和测试麻烦?

根据我的经验,对于业务应用程序,我总是使用外键。让您的构建脚本正常工作应该只是一次性设置成本,而数据稳定性将超过应用程序生命周期内的成本。

关于database - 与在数据库中相比,以编程方式强制执行外键的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2557512/

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