首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反馈系统的ERD图

反馈系统的ERD图
EN

Stack Overflow用户
提问于 2016-06-17 18:07:16
回答 1查看 3.5K关注 0票数 0

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

  1. 收件人可以选择组织中的5至10名提交者,以要求有关收件人的反馈意见。
  2. 提交者输入的反馈包括回答一些关于收件人的问题。
  3. 每个组织可以从预先存在的问题列表中进行选择,或者创建自己的问题。
  4. 提交者可以根据他们的反馈选择匿名。
  5. 反馈提交的日期应记录下来并显示给收件人。
  6. 收件人可以查看反馈的内容--包括日期、反馈和提交者(如果不是匿名的)。
  7. 收件人可以查看提交给他们的所有反馈的列表,包括所有提交者的平均分数。
  8. 收件人可以多次请求以上情况(例如:在年初和年中),并且平均分数需要显示在每个时间段,而不是所有答案之间。

这就是我写的,我不确定它是否准确。如果有人能反复核对并指出更正,我们将不胜感激:

编辑:

将图表更改为下面的图表。我仍然不确定合成键还是外键。如果有人能帮我解决这个问题?

第二版:更改格式,并试图解决上述问题。也改变了一些特性。

  • 接收者创建反馈。
  • 反馈表单可以访问预先填充的问题库。
  • 反馈被分配给提交者
  • 提交者完成反馈,可以选择匿名。
  • 每个提交者的个人反馈都得到一个平均分数。
  • 接收者看到个人得分,以及所有用户的平均分数。
  • 附加的注释可以添加到提交者的反馈中。
EN

回答 1

Stack Overflow用户

发布于 2016-06-17 18:52:21

我相信最好的答案是质疑潜在的问题,这样你就可以思考以下几点:

  • 图表显示,一个Feedback Question可以是多个Recipient /属于多个Recipient。每个Feedback Question不应该是关于/属于一个Recipient的吗?
  • 如何处理模型中的第3点?
  • Submitters似乎是雇主,根据你给他们的属性,但从描述上看,他们似乎是雇员?
  • 如何处理模型中的第4点?
  • 为什么Submitters有一个Due Date?如何处理第8点?
  • Recipients如何知道Feedback Question与每个Feedback Result之间的关系?
  • 图表显示每个Feedback Result都可以与多个Submitters相关联。你不认为每个Submitter应该有一个单独的Submitter,即每个Feedback Result应该只与一个Submitter相关联吗?
  • 为什么Feedback Results有到期日?我只看到说明中提到了提交日期。
  • 为什么要为每个Average Score记录Feedback Result?用查询来计算它不是更好吗?
  • 为什么要在RecipientsFeedback Results之间建立一个Feedback Results关系?您不认为描述只是要求他们能够查看(查询)结果,而不是记录他们的视图吗?

回应您的编辑:

  • 您将Feedback Question直接连接到没有关系的Questions --这在ER中无效。
  • 您将Submitters Due Date更改为Submission Date,但是Submitter不可能在不同的日期提交答案(参见第8点)?我只会把一个Submission Date放在Feedback Results上而不是Due Date上,而在Submitters上没有任何日期。
  • 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似乎是多余的,因为Feedback IDEmployee ID的组合唯一地标识了每一行。
  • 您仍然有一个Avg Table,我认为这是不必要的,因为平均值可以通过查询轻松地计算出来。
  • Avg Table中,您将Average Score指定为外键。我不知道这是怎么回事。它不应该使用Feedback ID作为外键和主键吗?
  • 您的Views约束似乎不对应于任何列,因此是不必要的。

希望这能有所帮助。

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

https://stackoverflow.com/questions/37887767

复制
相关文章

相似问题

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