[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.40,0:00:04.43,Default,,0000,0000,0000,,在数据库术语中 一个带关联约束的列 Dialogue: 0,0:00:04.43,0:00:06.08,Default,,0000,0000,0000,,也被称为外键 Dialogue: 0,0:00:06.08,0:00:09.57,Default,,0000,0000,0000,,对我来说 这个词听起来总是有点怪异 Dialogue: 0,0:00:09.57,0:00:13.27,Default,,0000,0000,0000,,就好象它是远在大海另一端的一把锁的钥匙 Dialogue: 0,0:00:13.27,0:00:16.55,Default,,0000,0000,0000,,外键只是一个表格中的一列或一组列 Dialogue: 0,0:00:16.55,0:00:19.52,Default,,0000,0000,0000,,该列唯一标识另一个表格中的一行 Dialogue: 0,0:00:19.52,0:00:20.28,Default,,0000,0000,0000,,一个表格 Dialogue: 0,0:00:20.28,0:00:25.20,Default,,0000,0000,0000,,可能有两个或以上的外键 实际上这种情况相当常见 Dialogue: 0,0:00:25.20,0:00:29.48,Default,,0000,0000,0000,,例如 各门课程中学生成绩的一个数据库 Dialogue: 0,0:00:29.48,0:00:33.42,Default,,0000,0000,0000,,这里我们已经有了一个学生姓名及其 ID 号的表格 Dialogue: 0,0:00:33.42,0:00:36.15,Default,,0000,0000,0000,,这个 ID 号是主键 因为名字并不具有唯一性 Dialogue: 0,0:00:36.15,0:00:41.64,Default,,0000,0000,0000,,我们有一个课程表格 其中包括课程名称和课程 ID Dialogue: 0,0:00:41.64,0:00:43.36,Default,,0000,0000,0000,,然后还有成绩表格 Dialogue: 0,0:00:43.36,0:00:46.89,Default,,0000,0000,0000,,这个表格的外键关联另外两个表格 Dialogue: 0,0:00:46.89,0:00:50.04,Default,,0000,0000,0000,,还是相同的表格 但这次的表格很长 Dialogue: 0,0:00:50.04,0:00:55.27,Default,,0000,0000,0000,,通常外键会指向关联表格的主键 Dialogue: 0,0:00:55.27,0:00:58.77,Default,,0000,0000,0000,,这是因为外键的重点在于 Dialogue: 0,0:00:58.77,0:01:03.04,Default,,0000,0000,0000,,它唯一标识了关联表格的一行 在关联表格中是主键 Dialogue: 0,0:01:03.04,0:01:04.82,Default,,0000,0000,0000,,这里有个小测验 Dialogue: 0,0:01:04.82,0:01:05.84,Default,,0000,0000,0000,,这些表格用于 Dialogue: 0,0:01:05.84,0:01:09.65,Default,,0000,0000,0000,,一个复杂的论坛应用程序 比你们上节课见过的那个复杂 Dialogue: 0,0:01:09.65,0:01:13.85,Default,,0000,0000,0000,,这个应用可让用户登录并发表评论 Dialogue: 0,0:01:13.85,0:01:16.18,Default,,0000,0000,0000,,还能对其他用户发表的贴子投票 Dialogue: 0,0:01:16.18,0:01:19.14,Default,,0000,0000,0000,,看一下这些表格 看看是否清楚哪些列应该是主键 Dialogue: 0,0:01:19.14,0:01:23.43,Default,,0000,0000,0000,,哪些列应该是与这些主键关联的外键 Dialogue: 0,0:01:23.43,0:01:27.13,Default,,0000,0000,0000,,在用户表格中 我们有用户名或句柄 Dialogue: 0,0:01:27.13,0:01:29.36,Default,,0000,0000,0000,,或别名 用户名是全名 Dialogue: 0,0:01:29.36,0:01:32.09,Default,,0000,0000,0000,,在贴子表格 Dialogue: 0,0:01:32.09,0:01:37.94,Default,,0000,0000,0000,,有贴子内容 作者的用户名 以及该贴子的 ID 号 Dialogue: 0,0:01:37.94,0:01:41.54,Default,,0000,0000,0000,,在投票表格 有贴子的 ID 号 Dialogue: 0,0:01:41.54,0:01:45.31,Default,,0000,0000,0000,,对该贴子投票的某人的用户名 以及1或-1 Dialogue: 0,0:01:45.31,0:01:48.13,Default,,0000,0000,0000,,这表示他们喜欢还是不喜欢这个贴子 Dialogue: 0,0:01:48.13,0:01:52.40,Default,,0000,0000,0000,,因此对于这里的每一列来说 如果它应该是那个表格的一个主键 Dialogue: 0,0:01:52.40,0:01:54.35,Default,,0000,0000,0000,,在那个方框中填写 P Dialogue: 0,0:01:54.35,0:01:56.40,Default,,0000,0000,0000,,如果它应该是一个外键 则填写 F Dialogue: 0,0:01:56.40,0:02:00.48,Default,,0000,0000,0000,,如果它既不是主键也不是外键 则方框留空 Dialogue: 0,0:02:00.48,0:02:04.33,Default,,0000,0000,0000,,虽然这个问题没有复选框 但请思考这些表格中 Dialogue: 0,0:02:04.33,0:02:07.44,Default,,0000,0000,0000,,是否哪个表格有不止一列是主键