【问题标题】:ER Diagram Design doubtsER图设计疑惑
【发布时间】:2017-01-30 12:17:27
【问题描述】:

我有一个案例,设计师和经理在一个具有特定角色的项目上工作。
这个 ER 图设计正确吗?
我对经理、设计师、角色和项目关系有疑问。
ER图:

或者我只是将其作为属性?

这是数据库表的表示

该案例还表明管理员几乎可以管理所有事情。
我必须建立“管理”关系吗?


这是完整的案例:
• 管理员可以登录管理一切
• 经理可以登录并处理项目
• 设计师也可以登录并参与项目
• 客户拥有项目
• 经理、设计师和客户的个人资料页面列出了他们相关的项目。管理员没有。
• 经理可以让设计师为他们工作
• 设计师一次只有一名经理,管理员可以随时更换设计师的经理
• 为项目工作的经理和设计师分配了管理员可以管理的角色(例如项目负责人、首席架构师、安全工程师等)
• 项目需要有富文本作为描述
• 项目需要能够有许多照片和 PDF 文件
• 只有负责项目的经理和设计师才能编辑项目(管理员也可以)

【问题讨论】:

    标签: sql database database-design entity-relationship diagram


    【解决方案1】:

    Role 设为属性意味着Designer/Manager 只能在单个Role 中作用于Project。使其成为关系中基数为 N 的实体意味着 Designer/Manager 可以在多个 Roles 中对 Project 起作用。

    在这些选项之间,可以使它成为关系中基数为 1 的实体(意味着 PK 由 Manager/DesignerProject 组成)。将其设为实体还是属性取决于您是否有关于 Roles 的信息,或者只是想记录一个值。

    您关于是否建立Manages 关系的问题尚不清楚 - 我无法为您确定“几乎所有”的含义。

    【讨论】:

    • 我想我会将Roles 的基数设为1,这样更适合这种情况。该案例指出Administrator 管理ManagerDesignerRoles 分配。我对不绘制Manages 关系有第二个想法。这会有点乱,但我认为这是必要的,对吧?
    • 这听起来像是一个明确的要求,所以是的。
    • 所以,我仍然添加Manages 关系,即使它在数据库表中没有数据,对吧?
    • 为什么没有数据?如果您的案例需要管理员来管理分配,那么我希望每个分配都指定负责的经理。
    • 等等,案例说管理员可以管理,但并不是说必须存储每个任务由哪个管理员负责的数据。对不起,如果我让你感到困惑,我也让自己感到困惑。我将编辑我的帖子并添加完整的案例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 2020-11-02
    • 2021-02-02
    • 1970-01-01
    • 2017-02-16
    相关资源
    最近更新 更多