如何解释这个图

时间:2015-09-23 22:39:36

标签: sql database diagram

本学期我在数据库课程中,我正在试图弄清楚如何解释这个图表 enter image description here

我知道关键符号代表主键或外键,但我不知道哪些是哪个。我认为具有2条垂直线的表格中至少有一个外键来自表格所在的表格,但我不是100%肯定。这就是我(我想)我理解的所有内容。

我真正需要的是要么告诉我这种类型的图表的名称和/或如何解释它,以便我可以编写SQL脚本来表示它。

2 个答案:

答案 0 :(得分:0)

  • 键符号表示主键或PK。
  • 外键(FK)没有任何符号,但您可以猜到。例如,backref是来自ForeignKey
  • 的FK
  • 箭头从student.dept_name转到department.dept_name表示某个部门有department名学生
  • 它们是两个符号,从第一行开始,一个是圆圈,另一个是一个粗线。我的猜测是student而另一个是0 to N,但不知道你如何制作该图表无法确定。
  • 此图表为ER或 Entity Relationship
  • 每个框都是您必须在脚本中创建的表或实体,然后创建PK,然后定义FK。

答案 1 :(得分:0)

这就是我在图表中看到的内容,虽然它可能并不完美,因为并非所有密钥都直接连接到主要来源。 >OO<表示需要提供许多内容。一个例子是一个部门有很多学生。 O||O表示必须有1且只有1.每个学生必须在某个部门注册,但他们只能在一个部门注册。 ||表示一对多的多个。每门课程可以有一个或多个部分(通常取决于希望参加该课程的学生人数)。

对于密钥的问题,主密钥和外键之间没有明显的区别。我假设在每种情况下,如果一个键只是被称为ID或包含表名的一部分(例如department:dept_name),那么它是主键,所有其他键都是外键。同样,有点难以分辨,因为并非所有关系都映射在这个特定的图表中(例如teaches / take和key set course_id,semester,&amp; year),但在这些情况下我们假设它是一个复合键(多个值)字段组成一个唯一的记录)而不是一个主键(尽管在节表中似乎只有一个主键)。在这种情况下,简单地说01或01O并不意味着任何东西,并且可能会返回与类标题相同的行数。您必须在当前学期的在线CIT261课程的第一部分指定course_id = CIT261, sec_id = '01O', semester = 'fall', year = 2015,该课程应该返回一行。

另一个有趣的说明,似乎顾问表满足多对多关系,并且不包含主键,而是另一个复合键,但它似乎不是一个可靠的模型,因为学术顾问通常通过部门与学生联系。这可能意味着反映教师的TA。

我希望这能指出你正确的方向。

-C§