我正在为客户创建一个大型项目管理系统。这涉及许多用户处理许多不同的项目。我正在努力想出一种在mySQL上关联不同表的方法。
例如,我有几张桌子;用户,项目.ect。每个用户必须能够拥有与其相关的无限数量的项目,反之亦然,每个项目必须能够拥有无限数量的用户。
我的问题是,拥有大量数据的公司如何在表之间关联这些数据?
我可以在用户中拥有大量列,每个项目ID,或者在具有用户ID的项目中具有相同的列。但那么我如何有效地获取每个项目/用户ID字段,然后查询另一个表以检索其数据?
另一种选择是为每个项目或用户创建一个单独的表,但我只有一个数据库可供使用,我不希望它被用户或项目表淹没。
这是什么常见方法。因为很多人必须面对这一点,而我显然缺少一些东西。 感谢。
答案 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)