创建一个新的mysql表,其中包含一个链接到另一个表的主要自动递增ID?

时间:2012-04-26 12:06:04

标签: mysql database-design database-schema

我希望两个表共享一个主要的自动递增ID,这可能吗?我该怎么做呢?他们需要考虑的是什么?

我这样做的原因是因为它比向users表添加groups列更好,也比创建一个完全独立的group表更好,因为如果他们共享一个主键,我可以使用现有的发布组和用户的表。而不必创建两个不同的帖子表,(group_posts表用于组帖子。和user_posts表用于用户帖子。)

现有用户表

id(primary,ai)

用户名

密码

电子邮件

我希望使用共享的ai主键链接到我的用户表的组表

id(主要,ai,链接到用户表ID)

组名

CREATED_BY

CREATION_DATE

1 个答案:

答案 0 :(得分:1)

您应该通过执行以下操作使您的架构更清晰:

  1. 创建表格(例如people
    • id,主键,自动增量
    • type,告诉您它是user还是group
  2. users上设置groupspeople个主键外键
    • people
    • 中插入记录
    • 获取使用LAST_INSERT_ID()
    • 分配的ID
    • 使用上面获得的ID
    • 适当地插入usersgroups
  3. 然后你会在你的posts表格中引用“人物”,而不是“用户”或“群组”等等。

    从概念上讲,以OO方式思考它,意味着usersgroups都延伸people