gpt4 book ai didi

mysql - 为什么我们应该将外键定义为数据透视表中的主键?

转载 作者:行者123 更新时间:2023-11-29 09:24:43 24 4
gpt4 key购买 nike

今天我遇到了一些问题,有人将外键定义为数据透视表中的主键!这是为什么?它对性能有影响吗?有哪些好处和用例?我们是否应该将外键定义为数据透视表中的主键以使它们唯一?

我的问题示例: enter image description here

为什么要将我们的多对多关系外键定义为主键?

最佳答案

这是在 N-M 关系中构建联结表(也称为桥接表)的正确方法。

理由:

  • 每个order_id(分别为user_id)应引用主表orders(分别为users)中的记录code>),因此您确实需要在每个列上使用外键来强制数据完整性

  • 每个 (order_id, user_id) 元组在桥接表中不应出现多次:这可以通过使用此列元组作为复合主键或通过设置对它的唯一约束。

当然,也可以为联结表定义独立主键(如自动增量 pk),但这主要是个人喜好问题。

关于mysql - 为什么我们应该将外键定义为数据透视表中的主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59800985/

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