gpt4 book ai didi

MySQL 联结表外键

转载 作者:行者123 更新时间:2023-11-30 22:57:08 24 4
gpt4 key购买 nike

我有几个表:companycustomercompany_has_customertransaction

company_has_customer 是一个多对多联结表,使用 companycustomer 的 PK 作为其 PK。

几乎在整个数据库的所有情况下,companycustomer 都用于标识一条记录(例如在transaction 表中) .

我的问题是我是否应该在 transaction 表中创建外键以指向 company_has_customer 或两个表 (company, 客户) 单独?

我认为参照完整性最好通过 company_has_customer 发送这些 FK,以确保仅在公司与客户之间存在关系时才插入 transaction 记录顾客。是否有任何标准或惯例支持我的直觉?

最佳答案

下面是思考问题的方法。交易是否与公司和客户有单独的关系?或者,交易是否永远特定于公司/客户关系?

我猜是第一种情况。

具体要考虑的情况是:如果交易发生后,客户与公司之间的关系发生了变化怎么办?交易是保留原公司还是转投新公司?还是失效了?

如果您引用 company_has_customer 表,则关系可能会消失。事实上,您可能希望关系保持事务发生时的状态,因此请选择两个外键关系。

关于MySQL 联结表外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25817289/

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