我知道关键符号代表主键或外键,但我不知道哪些是哪个。我认为具有2条垂直线的表格中至少有一个外键来自表格所在的表格,但我不是100%肯定。这就是我(我想)我理解的所有内容。
我真正需要的是要么告诉我这种类型的图表的名称和/或如何解释它,以便我可以编写SQL脚本来表示它。
答案 0 :(得分:0)
backref
是来自ForeignKey
student.dept_name
转到department.dept_name
表示某个部门有department
名学生student
而另一个是0 to N
,但不知道你如何制作该图表无法确定。答案 1 :(得分:0)
这就是我在图表中看到的内容,虽然它可能并不完美,因为并非所有密钥都直接连接到主要来源。 >O
或O<
表示需要提供许多内容。一个例子是一个部门有很多学生。 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§