sql - ER图设计疑惑

标签 sql database database-design entity-relationship diagram

我有这样一个案例,设计师和经理在一个项目中担任特定角色。
这个ER图设计正确吗?
我对Manager、Designer、Role、Project的关系有疑问。
ER图:
ER Diagram

或者我只是把它作为属性?
enter image description here

这是数据库表表示 Here is the Database table Representation

案例还表明 Administrator 管理几乎所有的东西。
我是否必须建立“管理”关系?


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

最佳答案

Role 设为属性意味着 Designer/Manager 只能在单个 Project 上工作 角色。使其成为关系中基数为 N 的实体意味着 Designer/Manager 可以在多个 Roles< 中处理 Project/.

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

关于是否建立Manages 关系的问题不清楚 - 我无法为您决定“几乎所有”是什么意思。

关于sql - ER图设计疑惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39630243/

相关文章:

mysql - 数据库 : aggregation vs storing pre computed data for lookup in large data store?

mysql - SQL 仅选择列上具有最大值的行

python - 如何在sqlAlchemy中设置行号

php - 从多个记录中获取所有不同的值但不重复

sql - 我们如何才能获得所有用户名列表而不是使用 django ORM 的用户对象

database - Facebook 数据库设计可能应该是什么

mysql - 在mysql表中存储和查询json

php - SQL - 记录多个日期/时间和计算时间差的最佳方法。

SQL - 在表中搜索重复值的所有实例

java - 使用 Hibernate 从数据库中检索与自身相关的实体