我有一个带有主键的表 1 和一个外键的user_id
表 2 user_id
。
user_id
表2中只能存在1条记录,没有它就没有记录。
问题:user_id
表 2 中可以同时是外键和主键,如果是,这是个好主意,有什么优点/缺点?
我有一个带有主键的表 1 和一个外键的user_id
表 2 user_id
。
user_id
表2中只能存在1条记录,没有它就没有记录。
问题:user_id
表 2 中可以同时是外键和主键,如果是,这是个好主意,有什么优点/缺点?
是的,您可以这样做(从数据库设计的角度来看,您应该这样做)。
但是,请考虑如果是表 2 上的主键意味着什么user_id
。您实际上是在说表 2 中的每一行对应一个用户,但是您已经有一个表,其中每一行对应一个用户:表 1。这引发了问题“为什么不将表 2 的所有数据放入表 1 的可空列中?”。毕竟,拥有两个表意味着您必须进行两次查询才能获取此数据,而不是一个。
现在有一些场景,这种做法可能是一个好主意:
这可能是一个好主意,但这取决于您的应用程序的细节。