嗨,所有堆栈溢出成员,
我正在研究关系数据库模块中的实体关系图。我们已经了解了ER图足以构建实体,识别每个实体的属性,包括主键,外键,实体之间的关系和基数约束。
我们得到了考文垂大学的正式场景,并要求根据该场景绘制ER图。问题是;没有一个学生得到正确的答案(对ERD不满意),甚至教师和老师都对此感到困惑。我按照我的理解回答了这个问题,但我对自己的回答并不满意。
这是情景:
考虑以下场景建模项目管理活动 在一个组织中。
一家汽车销售公司提供给它 客户可以选择使用还款计划购买汽车 超过1年,2年,3年,4年或5年。
客户可以 根据该计划购买一辆或多辆汽车。当顾客购买时 一辆车,他或她可以选择其中一种还款方案 每次购买或者可以一次性支付全部金额,意思是 还款计划选项可以由一个或多个客户选择或 可能根本没有被选中。客户将拥有一个独特的客户 号码,姓名,地址和电话号码。还款计划 选项将具有唯一的还款计划编号,名称和 还款年数。一辆汽车将拥有独特的汽车密码 制造,型号,制造年份和价格。
公司 向销售人员支付汽车销售佣金,因此也是如此 还将保留每个销售的信息,其中包括一个独特的 销售的销售ID和佣金。该公司也将 想知道是谁制作了销售和汽车参与其中 交易使佣金可以确定。一名销售员 将拥有唯一的销售员ID,姓名,电话号码和电子邮件 地址。
这是要求/问题: 为上面给出的场景构建实体关系图(ERD)。识别所有实体, 每个实体的属性包括主键,外键,实体之间的关系和 基数约束。说明支持您的设计所需的任何假设。
我的回答:
我想知道我的答案是否正确?如果不是/什么是正确答案?
谢谢
答案 0 :(得分:2)
欢迎使用StackOverflow。感谢您展示自己的答案。
您的回答反馈:
你的钥匙有些困难。您的所有外键都不需要包含在主键中。
您将每个客户与repayment_scheme_number相关联,这意味着客户只能为其所有购买选择一种还款方案。我读到这项任务说他可以为每次购买选择一个方案:
当客户购买汽车时,他或她可以为每次购买选择一种还款计划选项
通过将每辆车与客户和销售人员联系起来,汽车只能出售一次,而且销售与售出的汽车之间没有任何关系。
您也没有区分实体和关系。外键约束不是关系,ER中的关系实现为表(或ER术语中的关系关系,而不是实体关系)。外键约束只是完整性约束,以确保您不会将不存在的值关联起来。
我的回答:
我使用了Chen的符号,因为它区分了实体和关系。外键约束由实体和关系之间的线表示。
直接实施,物理模型如下所示:
如您所见,此格式并不表示哪些表表示实体或关系,但可以通过查看表的主键来确定。通过对具有相同行列式的关系进行非规范化,可以获得更有效的设计: