【发布时间】:2015-01-20 18:35:10
【问题描述】:
我编辑并重新制作了 ERD。我还有几个问题。
我包括参与约束(受训者和导师之间)、基数约束(M 表示许多)、弱实体(双线矩形)、弱关系(双线菱形)、组合属性、派生属性(带圆圈的空白区域) , 和主键。
问题:
-
显然,为了减少冗余属性,我应该只保留主键和描述性属性,以及出于简单原因我将删除的其他属性。在这种情况下,哪些属性是多余的?我在想 start_date、end_date、电话号码和地址,但这取决于实体集对吗?例如,属性地址将从 Trainee 中删除,因为我们真的不需要它?
-
对于部分:“对于每个实习生,我们希望存储(如果有的话)他们以前工作过的公司(雇主),雇佣期:开始日期和结束日期。”
“工作期间:开始日期,结束日期”不是一个组合属性吗?因为日期用符号“:”显示而且我相信我没有为“他们工作的地方”创建一个属性,即位置?
当我们已经有一个属性雇主和不同的开始日期时,如何显示以前的公司(雇主)?因为如果您查看问题信息,它会两次显示雇主的 start_date,第二次显示 start_date 和 end_date。
-
我将许多属性标记为主键,但我如何区分派生属性、主键以及哪个属性是多余的?
-
此 ERD 中是否有多值属性?工资和所从事的工作是否会是一个多值属性,因为雇主有很多工资和工作。
-
我相信我正确地做了参与约束(有一个)和基数约束。但也有一些句子,例如“一名教师至少教授一门课程。每门课程仅由一名教师教授”;当我没有课程和讲师之间的关系时,如何为此编写基数约束?
-
我的关系名称是否有意义,因为我看到的只是“有”,也许我没有正确命名关系的动作?另外我相信课程表取决于实际的实体,所以它们是弱实体......所以这是否使课程实体集也是一个弱实体(我在这里没有将其标记为弱实体)?
-
对于公司地址,我输入了一个组合属性,街道编号、街道地址、城市……这样是否正确?街道编号和街道地址也是主键吗?
-
我还为课程添加了 final mark 属性,而 course_schedule 是否在正确的实体集中?此属性的说明是“每位学员由以下各项标识:唯一代码、社会保险号、姓名、地址、唯一电话号码、参加的课程和每门课程的最终分数。”
-
对于这部分:“我们将站点上所有可用的教室都存储在数据库中”我是否要创建一个包含站点信息的组合属性?
问题信息:
实习生可能是个体经营者或公司雇员
由确定的每位学员: 唯一代码、社会安全号码、姓名、地址、唯一 电话号码、参加的课程和每门课程的最终分数。
如果实习生是公司员工:存储当前公司(雇主)、开始日期。
对于每个受训者,我们还希望存储(如果有的话)他们以前工作的公司(雇主)的工作时间:开始日期和结束日期。
如果学员是个体经营者:存储专业领域和职位。
对于在公司工作的实习生:我们存储薪水和工作
对于每个公司(雇主):名称(唯一的)、地址、唯一的电话号码。
我们将所有已知公司存储在数据库中 城市。
我们还需要代表每个学员正在参加的课程。
每门课程都有一个唯一的代码和标题。
对于我们必须存储的每门课程:开设课程的教室、日期和时间(开始时间和持续时间,以分钟为单位)。
教室的特点是建筑物名称和房间号以及最多可容纳的人数。
至少在一个教室里开设一门课程,并且可以安排在许多教室里。
我们在数据库中存储所有教室 可在网站上找到。
我们在数据库中存储公司至少提供一次的所有课程。
我们将为每位教师存储:社会保险号、姓名和出生日期。
一名讲师至少教授一门课程。
每门课程仅由一位讲师授课。
还必须存储所有讲师的电话号码(每位讲师至少有一个电话号码)。
一名学员可以是一名或多名学员的导师 时间段(开始日期和结束日期)。
对于实习生来说,不一定要当导师,但必须要有导师
【问题讨论】:
-
您能否提供另一个指向您的图表的链接?您提供的那个似乎不起作用。也许您也可以添加指向完整问题的链接,因为您对您的具体需求有点困惑。就主键而言,您可以将任何唯一字段指定为主键。您甚至可以将多个字段组合在一起作为您的 PK,但我建议不要将电话号码等字段设置为 PK,因为这些字段可能会更改,即使它们是唯一的,更改 PK 属性也会导致您更多比你想要的痛苦。
-
我重新附加了一个新链接。它对我有用,它现在应该可以工作了。如果你愿意,我可以发布完整的问题,但我还没有达到,因为我是数据库新手,我的知识与整个问题不同步,但我会重新发布整个问题。
-
还有关于主键的问题,所以实习生的主键是属性'code'?因为它永远不会改变?
-
我现在可以访问它了,谢谢。如果我必须做一个假设,是的,“代码”将是受训者的 PK,因为它看起来好像只有一个唯一标识符。我会尽快发布答案,尽我所能从您的问题中辨别出来,但这可能需要一分钟。和我一起裸露。
-
好吧,这就是我对问题 1 的回答。谢谢,现在我的主要问题是连接从上述问题中看到的关系,我不确定我是否为自雇和受雇的实体集编写了正确的关系.我也不确定实体集“公司”有什么关系。
标签: database relational-database entity-relationship