将各种表与大量数据相关联的常用方法

时间:2013-11-06 14:41:02

标签: mysql database-design

我正在为客户创建一个大型项目管理系统。这涉及许多用户处理许多不同的项目。我正在努力想出一种在mySQL上关联不同表的方法。

例如,我有几张桌子;用户,项目.ect。每个用户必须能够拥有与其相关的无限数量的项目,反之亦然,每个项目必须能够拥有无限数量的用户。

我的问题是,拥有大量数据的公司如何在表之间关联这些数据?

我可以在用户中拥有大量列,每个项目ID,或者在具有用户ID的项目中具有相同的列。但那么我如何有效地获取每个项目/用户ID字段,然后查询另一个表以检索其数据?

另一种选择是为每个项目或用户创建一个单独的表,但我只有一个数据库可供使用,我不希望它被用户或项目表淹没。

这是什么常见方法。因为很多人必须面对这一点,而我显然缺少一些东西。 感谢。

1 个答案:

答案 0 :(得分:3)

您拥有的是用户和项目之间的多对多关系,因此您需要这样的“加入表”:

projects
    id              unsigned int(P)
    name            varchar(50)
    ...

users
    id              unsigned int(P)
    username        varchar(32)
    password        varbinary(255)
    ...

users_projects
    id              unsigned int(P)
    user_id         unsigned int(F users.id)
    project_id      unsigned int(F projects.id)