我的表 1 有一个主键user_id
和表 2 其中user_id
是外键。
每条只有 1 条记录user_id
可以存在于表2中,并且没有它就不能存在任何记录。
问: 可以user_id
表 2 中的外键和主键同时存在,如果是,这是一个好主意吗?优点/缺点是什么?
是的,您可以这样做(从数据库设计的角度来看,您应该这样做)。
但是,请考虑一下如果user_id
是表 2 上的主键。您实际上是在说表 2 中的每一行对应于一个用户,但您已经有一个表,其中每行对应于一个用户:表 1。这就提出了一个问题“为什么不这样做”您是否将表 2 的所有数据放入表 1 中的可空列中?”。毕竟,拥有两个表意味着您必须进行两次查询才能获取此数据,而不是一次。
现在,在某些情况下,这种做法可能是个好主意:
- 如果您有很多用户,但表 2 中只有几行,则表 2 上的查询可能很少执行;同时,您获得表1的存储空间和修改速度
- 将来表2的主键可能会改变,而外键仍然存在;如果您将所有数据放入表 1 中,此修改很可能会破坏您的数据库模型
这可能是一个好主意,但这取决于您的应用程序的具体情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)