Mysql连接两个表(FK) - 数据库设计

时间:2010-10-05 10:36:11

标签: mysql database-design

如何以最佳方式将表project_user与表project_terms连接?

  • 一个项目有不同的分类,如1,2,3,4
  • 分类存储在categorys_table
  • 但是,一个用户可能只被分配给分类1,2而不是3,4
  • 我是否应该将project_table与categorys_table连接?

如何在我的数据库设计中解决这个问题?

[project_user]
id name
1  Tom

// But User Tom only assigned for the Project_id 1
// and the cat_id 2 in the project_terms table

[project_terms]
project_id (fk) | cat_id (fk)
1               | 2
1               | 3


[categorys_table]
cat_id | catname
2      | Lemon
3      | Apple



[project_table]

project_id | name
1          | FruitsProject

2 个答案:

答案 0 :(得分:1)

不知道我是否理解正确:一种可能的方法是将所有用户与项目相关联

[project_project_user]
project_id  |   user_id
    1              1

有了这个,你就有了一个分配给项目的用户。

为了能够检查条款,您可以引入一个与用户匹配的表格。

[project_terms_user]
user_id   |    term_id
    1              2

您也可以放弃[project_project_user]表,因为可以通过[project_terms_user]建立连接。对于第一个可用的表,某些队列可能更有效,但结果应该相同。

答案 1 :(得分:1)

alt text

相关问题