gpt4 book ai didi

sql-server - SQL Server 双向级联?

转载 作者:行者123 更新时间:2023-12-04 02:13:13 25 4
gpt4 key购买 nike

我正在尝试在 SQL Server Management Studio 2008 中组合一个数据库,该数据库将管理数据而无需以编程方式处理数据,但目前我遇到了一些问题。

我有一个名为 person 的主表,这个表保存了一个人的核心数据,它链接到第二个名为 customer 的表,如果他们希望拥有交易权限,则将他们包含在其中。一旦发生交易,客户 ID 就会被放入交易表中。

|Person|   |Customer|   |Transaction|
|------| |--------| |-----------|
| ID |-\ | ID |-\ | ID |
| | \| person | \| Customer |
| | | | | |

在这两个链接中,ID 是 PK,次要项目(人/客户)是 FK。
我在这种安排中遇到的问题在于,如果某人进行了交易,则必须保留他们,因此他们的客户 ID 会出现在交易表中。

我不是 100% 确定要采取什么方法,个人客户之间的“删除规则 - 级联”与客户 - 交易之间的“删除规则 - 无操作”会产生预期的效果吗?

在这个问题上,任何想法方法或更好的方法将不胜感激。

最佳答案

我认为,是的,一个

ON DELETE CASCADE
Customer.Person中的条款外键和一个
ON DELETE NO ACTION
Transaction.Customer中的条款外键会产生预期的效果。

然后,任何删除 Person 的尝试都会删除相关的 Customer 行,除非有相关的 Transcations。这将引发错误并且 DELETE 将被回滚。

关于sql-server - SQL Server 双向级联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8318906/

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