gpt4 book ai didi

MySQL - 也使用外键作为主键

转载 作者:IT老高 更新时间:2023-10-28 23:43:56 26 4
gpt4 key购买 nike

我有一个带有主键 user_id 的表 1 和一个 user_id 是外键的表 2。

每个user_id只能有1条记录在表2中,没有它就没有记录。

问题:表 2 中的 user_id 是否可以同时是外键和主键,如果是,这是个好主意,有什么优点/缺点?

最佳答案

是的,您可以这样做(从数据库设计的角度来看,您应该这样做)。

但是,考虑一下如果 user_id 是表 2 上的主键意味着什么。您实际上是在说表 2 中的每一行都对应一个用户,但您已经有一个表,其中每个行对应于一个用户:表 1。这提出了一个问题“为什么不将表 2 的所有数据放入表 1 中的可空列中?”。毕竟,拥有两个表意味着您将不得不进行两次查询来获取这些数据,而不是一个。

现在在某些情况下,这种做法可能是个好主意:

  • 如果你有很多用户,但表 2 中只有几行,那么对表 2 的查询可能只会很少执行;同时,您可以获得表 1 的存储空间和修改速度
  • 将来可能会改变表 2 的主键,而外键保持不变;如果您将所有数据都放在表 1 中,这种修改很可能会破坏您的数据库模型

这可能是个好主意,但这取决于您的应用程序的具体情况。

关于MySQL - 也使用外键作为主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8949028/

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