首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计用户可以有多个位置的数据库

设计用户可以有多个位置的数据库
EN

Database Administration用户
提问于 2015-11-24 20:05:51
回答 1查看 778关注 0票数 0

我正试图为下列情况确定最佳模式:

  1. 有多个办公室
  2. 每个办公室都有多名工作人员,每个人都有一个角色(主任、副主任等)
  3. 每个办事处也有许多项目。
  4. 每个项目由一名或多名工作人员(项目经理、助理项目经理、副项目经理等)管理。

因此,例如,一个办公室有一个办公室主任、一个副主任等等。他们也有项目经理(可以和办公室负责人一样)和管理项目的副经理。

我想要一个设计,我们可以将办公室员工标记到办公室,也可以标记作为项目经理的员工。以下是我所拥有的:

我有一个办公室表,一个项目表,一个office_project表

我有一个雇员表,我有一个角色表

我有一个office_employee表,我有一个employee_role表

问题是,将项目表与employee表绑定的最佳方法是什么?我假设我应该有一个employee表,或者有一个给员工的表和一个项目经理的表,每个表都有他们自己的角色表,这是否有意义?似乎不是这样的。现在,我可以把一个办公室和一个项目联系起来,看到所有的项目员工,但是并不是所有的办公室项目经理都会和某个项目联系在一起。

如果你需要我的ERD设计,请告诉我。

谢谢

EN

回答 1

Database Administration用户

回答已采纳

发布于 2015-11-24 20:34:40

我建议,与其建立明确的办公室项目关系,不如建立员工项目关系,让现有的办公室员工关系自然地解决这个问题。

从您的问题来看,似乎许多员工可以与单个项目相关联,而单个员工可以与许多项目相关联。在本例中,您需要表单的链接表:

代码语言:javascript
复制
    employee_project
    -------------------
    employee_id | project_id

如果关系更加复杂--例如,员工通过其角色之一参与项目,您可能希望将关系移到这一点上,例如:

代码语言:javascript
复制
    project_employee_role
    -------------------
    employee_role_id | project_id

如果有代理项employee_role_id

代码语言:javascript
复制
   project_employee_role
   -------------------
   employee_id | role_id | project_id

如果不是。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/122007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档