DBMS是否单独存储引用属性?

时间:2014-03-10 09:01:58

标签: mysql sql sql-server database foreign-key-relationship

假设我有以下关系(表格):
Student (id, name , family) Course (id, title, unit, ref) Std-Course (std-id, course-id) // std-id和course-id分别是引用学生和课程关系的外键。

std-id和course-id是单独存储还是只存储为指针? (特别是在MySqlMS SQLSERVER

修改:让我用这种方式解释一下:

如果(123456, JOHN, SMITH)表格中有Student行,并且(123456,db1)中的Std-Course 123456存储了两次,或存储在第二个表格中(作为外键)它只是一个链接?

1 个答案:

答案 0 :(得分:1)

根据文件:

  

MySQL支持外键,可以让你交叉引用相关的   表中的数据和外键约束有助于保持这一点   展开数据一致。

意思是,我们使用子和父母来存储数据。 foreign key ... references ...的指令将存储在系统表table_constraints中,以维护表中定义的关系

修改

  

如果学生表中有这样一行(123456JOHNSMITH),并且{123456db1)在Std-Course中,123456存储了两次还是存储在第二个表中(作为外键)它只是一个链接?

存储两次。第一个在父表中,第二个在子表中。

引用不是表数据的直接部分。它们是数据库系统的指令,并在称为information_schema的自己的模式中维护。

table_constraints是此模式的一部分,包含有关mysql当前实例下各种数据库中定义的所有此类约束的信息。

请参阅