SQL 数据库设计:一个项目 - 多个角色
SQL DB Design: One project - Many roles
我正在努力思考当您有一个像这样的项目时,数据库模式会是什么样子:
> +----------------+ +----------+
| Project | | roles |
+------------------+ +----------+
| project_id + + role_id +
| project_roles_id + + role_name+
+------------------+ +----------+
所以我的问题是想弄清楚如何向项目添加多个角色。如果一个项目有一个捕获经理、一个项目经理和一个提案经理...我如何最好地在模式中创建它?
我会这样做:
::: projects :::
+------------+---------------------+
| project_id | project_name |
+------------+---------------------+
| 1 | Scoping a project |
+------------+---------------------+
| 2 | Building a bridge |
+------------+---------------------+
| 3 | Building a SQL db |
+------------+---------------------+
::: roles :::
+---------+-------------------+
| role_id | role_name |
+---------+-------------------+
| 1 | Project Manager |
+---------+-------------------+
| 2 | Civil Engineer |
+---------+-------------------+
| 3 | Computer Engineer |
+---------+-------------------+
::: roles_to_projects :::
+------------+---------+
| project_id | role_id |
+------------+---------+
| 1 | 1 |
+------------+---------+
| 2 | 1 |
+------------+---------+
| 2 | 2 |
+------------+---------+
| 3 | 3 |
+------------+---------+
这会告诉您(以最少的重复)哪些项目需要哪些角色。
我正在努力思考当您有一个像这样的项目时,数据库模式会是什么样子:
> +----------------+ +----------+
| Project | | roles |
+------------------+ +----------+
| project_id + + role_id +
| project_roles_id + + role_name+
+------------------+ +----------+
所以我的问题是想弄清楚如何向项目添加多个角色。如果一个项目有一个捕获经理、一个项目经理和一个提案经理...我如何最好地在模式中创建它?
我会这样做:
::: projects :::
+------------+---------------------+
| project_id | project_name |
+------------+---------------------+
| 1 | Scoping a project |
+------------+---------------------+
| 2 | Building a bridge |
+------------+---------------------+
| 3 | Building a SQL db |
+------------+---------------------+
::: roles :::
+---------+-------------------+
| role_id | role_name |
+---------+-------------------+
| 1 | Project Manager |
+---------+-------------------+
| 2 | Civil Engineer |
+---------+-------------------+
| 3 | Computer Engineer |
+---------+-------------------+
::: roles_to_projects :::
+------------+---------+
| project_id | role_id |
+------------+---------+
| 1 | 1 |
+------------+---------+
| 2 | 1 |
+------------+---------+
| 2 | 2 |
+------------+---------+
| 3 | 3 |
+------------+---------+
这会告诉您(以最少的重复)哪些项目需要哪些角色。