主父表主键,从子表外键

创建含有外键的表: create table temp( id int, name char(20), foreign key(id) references outTable(id) on delete cascade on update cascade);

更新表产生外键:
alter table child add constraint foreign key(id) references parent(id);

主表与从表的关系,可以理解成主表为备选表,主表是多个特种的集合。主表=唯一识别码(主键)+特征(属性);从表=唯一识别码(主键)+特征(属性)+主表的唯一识别码(外键)

A表的主键在B表中充当外键,谁是主表,谁是子表?

A为主表
B为从表

个人认为:

外键是约束的一种。不存在主从关系,只存在引用关系,如部门表与员工表。
每个员工都属于某个部门,必须与某个部门资料对应。
主从表的情况:类似于订单表与订单明细表的关系。

简单的讲:当两个表建立一对多关系的时候,"一"的那一端是父表,"多"的那一端是子表.

父表设置一个主键
子表设置一个外键
外键与主键相关联

B表引用A表的字段作为外键,那么A表是主表,B表是从表。就像A是B的父亲一样,儿子可以继承父亲的遗产,可以将父亲的东西拿来自己用。用继承的思想想这个问题就会比较明了。

简单的理解是,字表中的记录使用了父表中的某些字段,通过这些字段可以找到父表中关于这条记录的所有信息,
例如:有学生表、课程表、选课表,
由于选课表中用到了学生表中的学生ID字段(用来与学生表进行关联,获得学生的信息),并且用到了课程表中的课程ID字段(用来与课程表进行关联,获得课程的信息),
通过上面的分析我们知道,选课表是子表,学生表与课程表都是它的父表


首先,删除数据库主键表内容一定要把与之相关的外键表内容全删除.关于你的补充问题:在数据库层做操作你就不用多做业务层的操作.不知道你的是什么数据库,但是一般数据库都支持下面的1.给表创建级联约束,一旦更新,删除主表的记录,从表的记录也会跟着更新,删除2.定义编写触发器,一旦更新,删除主表的记录,就根据条件更新,删除从表的记录有不明再M我.



相关文档
最新文档