基础数据库设计 - 可选参与

时间:2012-10-02 23:22:46

标签: database database-design relational-database visio

在Visio中处理基本的数据库设计作业和ERD绘图,无法解决这个问题。

  

United Helpers是一家非营利组织,在自然灾害发生后为人们提供援助。基于以下简介   操作说明,创建适当的完全标记的乌鸦   脚ERD。

     

•个人自愿花时间执行组织的任务。每个人的姓名,地址和电话号码   跟踪志愿者。每个志愿者可能被分配到几个任务   在他或她做志愿者工作的时候,以及一些任务   需要很多志愿者。志愿者有可能参加   尚未分配任务的系统。有可能   没有人分配的任务。当志愿者被分配到一个   任务,系统应跟踪该开始时间和结束时间   分配

     

•对于每项任务,都有任务代码,任务描述,任务类型和任务状态。例如,可能存在具有任务代码的任务   “101,”一种“接听电话”的描述,一种“反复出现”,   并且状态为“正在进行中”。可能还有另一项任务,其代码为   “102,”描述“准备5000包基本医疗   供应,“一种”包装“,以及”开放“的状态。

     

•对于“packing”类型的所有任务,都有一个包装清单,用于指定包裹的内容。有很多不同   包装清单,以生产不同的包装,如基本医疗   包装,儿童保育包装,食品包装等。每个包装清单   有一个装箱单ID号,一个装箱单名和一个装箱单   描述,描述了理想的制作项目   那种包裹。每个包装任务只与一个相关联   打包清单。装箱单可能与任何任务无关,或   可能与许多任务相关联。没有打包任务的任务   与任何装箱单无关。

     

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

     

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

     

•对于组织提供的每个项目,都有一个项目ID编号,项目描述,项目值和手头存储的项目数量   在系统中。跟踪放置的实际项目   每个包装,包装中放置的每件物品的数量必须是   跟踪了。例如,装箱单可以表明基本医疗   包装应包括100绷带,4瓶碘和4   瓶过氧化氢。但是,由于供应有限   项目,给定的包装可能只包括10个绷带,1瓶   碘,没有过氧化氢。这个包裹的事实包括   绷带和碘需要与数量一起记录   每个都包括在内。组织可以拥有   捐赠的物品尚未包含在任何包装中,但是   每个包都至少包含一个项目。

我的想法是实体 VOLUNTEER & 任务创建复合实体 ASSIGNMENT ,可以生成任务包装。该任务使用包装清单& ITEMS ,会生成 PACKAGE

enter image description here

然而,我对这个解决方案的信心是零。想知道它是否远程正确?或者我完全以错误的方式解决这个问题?

由于

3 个答案:

答案 0 :(得分:1)

你正在以正确的方式进行,或者至少朝着正确的方向前进,但最终结果是错误的(尽管图表顶行中的实体或多或少是正确的)

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

答案 1 :(得分:1)

在您以任何有意义的方式完成家庭作业之前,您和您的老师需要就ERD是否表达数据分析数据库设计达成一致。在之前关于ERD的问题中,我一直认为ERD用于数据分析,数据库设计应该用其他图表方案表示,例如关系示意图。

然而,您的老师很可能不会像我一样看待这一点。大量专业人员使用ERD作为关系示意图的替代,并在ERD中表达数据库设计。你的解决方案看起来像我的设计,而不是分析。

如果您的老师不区分分析和设计(有些则没有),那么您需要学习一些基本知识,而您的老师将无法教您。您需要区分问题的特征和建议的问题解决方案的特征。如果你没有做出这种区分,你最终会遇到一些陷阱。

最常见的陷阱是找到解决错误问题的正确方法。我已经看到这种情况在现场一遍又一遍地发生。

第二个最常见的陷阱是更改问题定义以使问题更容易解决。有时这是故意完成的,以满足有限资源的最后期限。但是当它无意中完成时,会出现许多问题。

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

答案 2 :(得分:0)

我认为应该是这样的

只有五个表指定,我的包装任务,就是任务表。