2012-10-02 13 views
0

在Visio中处理基本的数据库设计作业和ERD绘图,无法绕开这个问题。基本数据库设计 - 可选参与

联合助手是一个非营利性组织,为自然灾害后的人们提供援助。根据以下简短的操作说明,创建适当的完全标记的Crow's Foot ERD。

•个人志愿自己的时间来执行组织的任务。跟踪每个 志愿者的姓名,地址和电话号码。在志愿者工作期间,每个志愿者可能被分配到几个任务 ,并且一些任务 需要许多志愿者。没有被分配任务的志愿者可能在 系统中。可能有 任务没有被分配。当志愿者被分配到 任务时,系统应跟踪该任务的开始时间和结束时间。

•对于每个任务,都有一个任务代码,任务描述,任务类型和任务状态。例如,可能存在一个任务,其任务代码为“101”,“接听电话”的描述,一种“重复发生”, 以及状态为“正在进行中”。可能有另一项任务,其代码为 “102”的“备战5000包基本医疗 用品,”一个类型的说明“的包装,”和状态为“开放”。

•对于类型的所有任务的“包装”有一个装箱单指定了包裹的内容。有很多不同的 包装清单生产不同的包装,如基本医疗 包装,儿童保育包装,食品包装等。每个包装清单 有一个装箱清单ID号码,装箱清单名称和装箱清单 说明,其中描述了理想情况下制作 该类型包装的物品。每个包装任务仅与一个 装箱单关联。装箱单可能不与任何任务相关联,或者可能与许多任务相关联。不包装任务 的任务不与任何装箱单关联。

•打包任务导致创建包。跟踪由组织生成的每个单独的物资包。 每个包都分配了一个ID号。记录创建包的日期为 并记录包的总重量。给定的 包只与一个任务相关联。一些任务(例如,“回答 电话”)将不会产生任何包,而其他任务 (例如,“准备5000个基本医疗用品包”)将与许多包相关联的 。

•包装清单描述了每个包装的理想内容,但并不总是可能包含每件物品的理想数量。 因此,每个包装中包含的实际物品应该是 跟踪。包可以包含许多不同的项目,并且给定项目 可以用于许多不同的包中。

•对于该组织提供每个项目,有一个项目ID号,项目描述,项目值,和项目数量上的手在系统存储 。除了跟踪每个包裹中放置的实际物品 之外,包裹中放置的每件物品的数量也必须为 。例如,装箱清单可能规定基本医疗包装应包括100绷带,4瓶碘和4 瓶过氧化氢。然而,由于物品的供应有限,给定的包装可能仅包括10个绷带,1瓶的碘,并且不包含过氧化氢。这个包裹包括 绷带和碘的事实需要与每个被包括的 的数量一起记录。该组织可能有 捐赠的物品尚未包含在任何包裹中,但每个包裹包含 将包含至少一个项目。

我的想法是实体志愿者 & TASK创建复合实体转让可能产生的任务包装。该任务使用包装清单 & ITEMS其产生包装

enter image description here

但是我的信心在这个解决方案是零。想知道它是否是远程正确的?或者我完全以这种错误的方式去做?

感谢

回答

0

你要它以正确的方式,或者在正确的方向上至少前进,但最终的结果是错误的(虽然你的图的顶行中的实体都或多或少正确)

,请注意短语“对于每个任务,有...任务类型”和“对于类型的所有任务‘的包装,’有装箱单”。这表明“包装任务”是一种任务,而不是一种任务。

+0

干杯。你可以用什么方式来阐述如何创造这座桥梁?我怀疑这一点,并尝试了所有我能想到的方法... – HandsomeRob

+0

我会建议“PackingTask”将有一个“TaskID”,而不是志愿者或AssignmentID – podiluska

+0

我想我明白你的意思了,就像这样? [链接](http://bungle.ca/ch4-p6.jpg) – HandsomeRob

1

之前,你可以做任何有意义的方式这个家庭作业,你和你的老师必须是一个一致的关于ERD是否表达数据分析数据库设计。在之前关于ERD的问题中,我总是提出ERD用于数据分析的观点,数据库设计应该用其他一些图表方式表达,例如关系示意图。

但是,你的老师很可能没有看到我这样做。大量的专业人员使用ERD作为关系图的替代方案,并在ERD中表示数据库设计。你的解决方案看起来像我的设计,而不是分析。

如果你的老师没有区分分析和设计(有些不这样做),那么你需要学习一些基本知识,而且老师不能教你。您需要区分问题的特征和提出的问题解决方案的特征。如果你没有做出这种区分,你最终会陷入几个陷阱之一。

最常见的陷阱是提出正确的解决方案来解决错误的问题。我已经看到这一切在场上反复发生。

第二个最常见的错误是改变问题定义,以便使问题更容易解决。有时候这是有意完成的,以便在有限的资源期限内完成最后期限。但是当它无意中完成时,会出现一系列问题。

第三个陷阱就是所谓的“箱内思考”。在这个陷阱中,解决方案会添加一个不在原始问题定义中的约束,但却是第一个错误解决方案的一个特征。 “盒子”是提出的(错误的)解决方案的一个特征,而不是最初陈述的问题的特征。但一旦它被接受为问题的一部分,问题就变得无法解决。

+0

感谢您花时间写下所有这些内容。 本课程是基础数据库设计,我们正在学习ERD的面向对象模型,UML类图等。 但是我只有10个小时的教学,只是覆盖像'这是一个表'这样的基本知识我的理解是相当有限的。 在研究这种类型的东西时,它通常看起来像是一门外语,直到我有了顿悟的地方。在这一点上,我正在努力寻找。 我想我明白你想说什么,但缺乏实践经验? – HandsomeRob

+0

您是否了解分析和设计之间的区别? –

+0

你了解表和实体之间的区别吗? –

0

我想应该是这样的

一个有只有五个表中指定,我的东西包装任务,是任务表。