【发布时间】:2020-11-23 06:12:03
【问题描述】:
我有以下这些数据库实体:
- 组织 - 顶级
- 项目 - 组织可以有许多项目。
- 团队负责人 - 项目可以有多个团队负责人。
我已经有以下这些数据库表:
- 组织
- orgnization_id
- (其他属性)
- organization_projects
- organization_id(来自组织表)
- project_id
- (其他属性)
- projects_team_leads
- organization_project_id(来自 organization_projects 表)
- team_lead_id(员工表中的 id)
现在,我想在此处再添加一个实体,称为承包商。承包商的属性如下:
- 一个团队负责人可以有多个承包商。在团队领导和承包商之间的映射中会有某些属性相关联,例如 manage_start_date
- 还需要在承包商和项目之间建模一些信息。例如。 “项目”级别的承包商评级。
- 还需要在承包商和组织之间建模一些信息。例如。 “合同工期”
另外,请注意,只有一名团队负责人可以管理项目内的承包商。 承包商也有全局信息,例如姓名、出生日期等,它们驻留在雇员表中。但是,这个员工表在另一个微服务中。
当前的任务是为这个具有项目和组织的服务添加承包商,并在不同级别(团队领导级别、项目级别和组织级别)添加必要的属性。
我正在考虑在每个级别设置单独的表格。例如。
- organization_contractors
- organization_id
- contractor_id(来自不同微服务中的员工表)
- contract_duration
- project_contractors
- organization_contractor_id(来自 organization_contractors 表)
- organization_project_id(来自 organization_projects 表)
- 评分
- team_lead_contractors
- project_team_lead_id(来自 project_team_leads 表)
- contractor_project_id(来自 project_contractors 表)
- manage_start_date
对此我唯一的疑虑是,在 team_lead_contractors 表中,可以从 project_team_lead_id 和contractor_project_id 推断出项目。
与其他方法相比,这种方法的优点和关注点是什么?
【问题讨论】:
标签: sql postgresql database-design entity-relationship