定义外键和建表原则

定义外键约束
1,可以直接在create语句中定义外键

        •foreign key 当前表名 (字段名) references 目标表名 (目标表的主键)

2,创建完语句后,可以直接使用修改语句定义

        •alter table 表名 add foreign key 当前表名 (字段名) references 目标表名 (目标表的主键);

* 添加外键
语法:alter table emp add foreign key 当前表名(dno) references 关联的表(did);
        alter table emp add foreign key emp(dno) references dept(did);
* 数据库的设计
* 一对多 生活中一个部门下有多个员工,一个员工属于一个部门。
        在多方需要添加一个字段,并且和一放主键的类型必须是相同的。
        把该字段作为外键指向一方的主键。
                一方部门
                多方员工
* 多对多
        学生可以选择多门课程,课程又可以被多名学生选择。
建表原则:
* 拆开两个一对多的关系,中间创建一个中间表,至少有两个字段。作为外键指向两个多对多关系表的主键。
* 一对一(了解)
* 公司,地址,一个公司对应的是一个地址。 一张表包含公司名称、公司地址。
* 根据公司的业务需求,会把公司这张表拆开,形成一对一。
* 建表原则
        * 主键对应

        * 唯一外键对应

建表原则:
•第一种是主键对应

        •将两个表的主键进行关联

•第二种是唯一外键对应

        •在任何一方加一个外键,但是需要设置成唯一(unique),指向另一方的主键

 定义外键和建表原则