gpt4 book ai didi

c# - 创建外键的危险。 nHibernate 和 SQL Server

转载 作者:行者123 更新时间:2023-11-30 19:46:40 25 4
gpt4 key购买 nike

我继承了一个陈旧破旧的数据库,并且想在现有的关系列中放入大量外键,这样我就可以使用 nHibernate 之类的东西来处理关系。

我在 key 领域有点缺乏经验,虽然我觉得我理解它们是如何工作的,但我的某些部分还是害怕,或者以某种方式破坏数据库。

例如,我遇到过“级联删除”的概念。我认为数据库中目前没有任何外键,所以我想这不会影响我...但是我如何检查才能确定?

我还需要注意哪些其他风险?

在某种程度上,我喜欢只使用没有外键的 nHibernate,但据我所知,这是不可能的?

最佳答案

将外键放在没有外键的数据库上的最大问题(这表明原始数据库设计者无能,因此还会有许多其他问题需要解决),是接近您拥有没有父键的孤立数据的可能性为 100%。您将需要弄清楚如何处理这些数据。其中一些可以扔掉,因为它不再以任何方式使用并且只是在浪费空间。但是,如果其中任何一个与订单或任何财务相关,您需要保留数据,在这种情况下,您可能需要定义一个“未知”的父记录,您可以将记录关联到该记录。首先查找并修复所有坏数据,然后添加外键。

请谨慎使用级联更新和级联删除,因为如果需要更改大量记录,它们可能会锁定您的数据库。此外,在许多情况下,如果存在现有记录,您希望删除失败。例如,您不想通过财务记录进行级联删除。如果删除用户会删除过去的订单,那是一件非常糟糕的事情!如果您不使用级联,您可能会遇到错误代码,一旦 key 就位,您就无法再删除或更改记录,这些代码会使数据变坏。因此,一旦您拥有 key ,就彻底测试所有删除和更新功能。

关于c# - 创建外键的危险。 nHibernate 和 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8213983/

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