【发布时间】:2012-04-26 20:29:43
【问题描述】:
我希望两个表共享一个主自动递增 id,这可能吗?我该怎么做呢?他们有什么我需要考虑的吗?
我这样做的原因是因为它是比将组列添加到用户表更好的解决方案,也比创建完全独立的组表更好,因为如果它们共享主键,我可以使用现有的组和用户的帖子表。而不必创建两个不同的帖子表,(组帖子的 group_posts 表。用户帖子的 user_posts 表。)
现有用户表是
id(primary, ai)
用户名
密码
电子邮件
我想使用共享的 ai 主键链接到我的用户表的组表
id(primary, ai, 链接到用户表id)
组名
创建者
创作日期
等等
【问题讨论】:
-
如果两个表具有完全相同的主键,那么它们没有理由不应该是一个表。似乎您正在组和用户之间创建一对一的关系,这看起来很奇怪。
-
通过使它们一对一,我可以重用许多预先存在的用户功能并将它们应用于组。到目前为止,例如关注、发帖、发帖、发帖等组和用户基本相同。我可以通过创建一个标识该行是组还是用户的列来区分这两者。
-
1-1 的替代方案是将组和用户表完全分开。从我的帖子表中输出帖子时,这可能会造成问题。因为posted_to id 会与users 和groups 表冲突。我想我可以在帖子中创建一个列来区分posted_to_groups和posted_to_users。
标签: mysql database-design database-schema