下面的图片是我正在学习从教程中创建的数据库。从连接两个表的箭头可以看出,本教程的作者试图解释它们的关系性质。他将subject_id
添加到页面表中,这样,无论何时我们谈论一个页面,我们都知道它所属的主题。主题是父,页面是孩子。
我的问题是,这个语法subject_id
是否有一些特殊之处可以实现这种关系。例如,主题表的名称是复数subjects
,因此我看不到subject_id如何建立从pages
到subjects
的连接。 subject_id可以被命名为任何东西,如果是,那么数据库如何知道已经建立了关系?
答案 0 :(得分:2)
名称与MySQL完全无关;他们被选中帮助人们了解正在发生的事情。告诉MySQL关于这种关系的方法是指定foreign key constraint作为CREATE TABLE或ALTER TABLE语句的一部分。
答案 1 :(得分:2)
它是通过向您的页面表添加一个引用主题表的外键来实现的。基本上,外键告诉表subject_id
实际上是subjects
中的记录并且它们是链接的
看一下这些链接
http://en.wikipedia.org/wiki/Foreign_key
http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html