ERD反馈系统图

时间:2016-06-17 18:07:16

标签: database database-design relational-database erd

我必须根据下面给出的一些高级描述创建一个ERD图:

  1. 收件人可以在其组织中挑选5到10个提交者,以请求有关收件人的反馈。
  2. 提交者输入的反馈包括回答有关收件人的一些问题。
  3. 每个组织可以从预先存在的问题列表中进行选择或创建自己的问题。
  4. 提交者可以选择匿名反馈。
  5. 应记录反馈提交的日期并显示给收件人。
  6. 收件人可以查看反馈的内容 - 包括日期,反馈和提交者(如果不是匿名的话)。
  7. 收件人可以查看提交给他们的所有反馈的列表,包括所有提交者的平均分数。
  8. 收件人可以多次请求上述情况(例如:在年初和年中) 平均分数需要在每个时间段显示,而不是跨越 所有答案。
  9. 这是我制定的,我不确定它是否准确。如果有人可以仔细检查并指出更正,那将是值得赞赏的:

    编辑:

    将图表更改为下面的图表。我仍然不确定复合键或外键。如果有人可以帮我解决这个问题?

    第二次编辑: 更改了格式并尝试解决上述问题。也改变了一些功能。 feedbackerd[1]

    • 收件人会创建反馈
    • 反馈表单可以访问pre 填充问题银行
    • 反馈已分配给提交者
    • 提交者完成反馈,可以选择匿名
    • 每个提交者都会获得个人反馈的平均分数
    • 收件人会看到各个分数以及所有用户的平均值
    • 其他评论可以添加到提交者的反馈

1 个答案:

答案 0 :(得分:0)

我相信给你最好的答案就是质疑潜在的问题,以便你能够思考这些问题:

  • 该图表示Feedback Question可以属于/属于多个Recipient。每个Feedback Question不应该属于/属于单个Recipient吗?

  • 您如何处理模型中的第3点?

  • Submitters似乎是基于你给他们的属性的雇主,但从描述中听起来他们是雇员?

  • 您如何处理模型中的第4点?

  • 为什么SubmittersDue Date?如何使用第8点?

  • Recipients如何知道每个Feedback QuestionFeedback Result相关的内容?

  • 该图表示每个Feedback Result可以与多个Submitters相关联。你不认为每个Feedback Result应该有一个单独的Submitter,即每个Feedback Result应该只与一个Submitter相关联吗?

  • 为什么Feedback Results有截止日期?我只看到说明中提交的提交日期。

  • 为什么要为每个Average Score录制Feedback Result?用查询计算它不是更好吗?

  • 为什么要在ViewsRecipients之间建立Feedback Results关系?您是否认为描述只是要求他们能够查看(查询)结果,而不是记录他们的观点?

回复您的修改:

  • 您将Feedback Question直接关联到Questions没有关系 - 这在ER中无效。

  • 您已将Submitters Due Date更改为Submission Date,但Submitter无法在不同日期提交答案(请参阅第8点)?我只想在Submission Date而不是Feedback Results上加Due DateSubmitters上没有任何日期。

  • Submitter可以匿名提交一些Feedback Results而其他人公开提交吗?

  • 您向Feedback ID添加了Feedback Results属性 - 我认为这应该是一种关系。

  • 我对Views(他们两个)和Average的建议并不是要对它们进行建模。平均值是派生的事实 - 我们只需要在数据库中记录基本事实。查看数据是运行时行为,而不是需要记录的信息。

  • 您说您仍然不确定复合键或外键。如果您能解释一下您不确定的内容,我可以提供帮助。就个人而言,我更喜欢使用1,M和N作为基数指标而不是乌鸦的脚,但我可以用任何一种方式阅读。

  • 我同意您对Recipient关系基数的更改,但我认为您需要对Submits执行相同的操作 - 每个Feedback Result应由一个Submitter

您的第三次尝试:您现在拥有数据库或表格图,而不再是实体关系图 - 换句话说,您从概念模型切换到物理模型。

  • 表格图中的外键约束是定向的,因此您不能在它们之间使用多对多连接。

  • 您的Feedback表格需要Question ID,这意味着您必须将每个新问题插入第3点中提到的预先存在的列表中。这就是作业的目的吗?

  • 反馈表的主键是什么?它是Question IDRecipient ID的组合吗?但是,Feedback Assignment似乎是指不存在的代理ID。

  • Feedback Assignment表的主键是什么?它是Feedback IDEmployee ID的组合吗?这就是Feedback Results所指的内容,这意味着代理ID是不必要的。

  • Feedback Results中,代理键Results ID似乎是多余的,因为AFAICT Feedback IDEmployee ID的组合唯一标识每一行。

  • 您仍然拥有Avg Table,我认为这是不必要的,因为可以通过查询轻松计算平均值。

  • Avg Table中,您将Average Score指定为外键。我不知道这是如何工作的。它不应该使用Feedback ID作为外键和主键吗?

  • 您的Views约束似乎与任何列都不对应,并且是不必要的IMO。

希望有所帮助。