数据库设计

1 外键的定义

  1. 外键是某个表中的一列,它包含在另一个表的主键中。
  2. 外键也是索引的一种,是通过一张表中的一列指向另一张表中的主键,来对两张表进行关联。
  3. 一张表可以有一个外键,也可以存在多个外键,与多张表进行关联。

2 外键的作用

外键的主要作用是保证数据的一致性和完整性,并且减少数据冗余;

阻止执行

  1. 从表插入新行,其外键值不是主表的主键值便阻止插入。
  2. 从表修改外键值,新值不是主表的主键值便阻止修改。
  3. 主表删除行,其主键值在从表里存在便阻止删除(要想删除,必须先删除从表的相关行)。
  4. 主表修改主键值,旧值在从表里存在便阻止修改(要想修改,必须先删除从表的相关行)。

3 级联操作

由于上面条件不能执行级联操作,所以要想更新或者删除主表外键数据的同时删除从表的数据,那么需要设置;

3.1 级联更新

constraint 外键名称 foreign key 外键列名称 references 主表名称 on update cascade;

3.2 级联删除

constraint 外键名称 foreign key 外键列名称 references 主表名称 on delete cascade;

4 数据库设计

多表之间的关系:
1.一对一
比如:人和身份证
一个人只有一张身份证,一张身份证被一个人拥有;
2.一对多(多对一)
比如:部门和员工
一个部门有多个员工,一个员工只能有一个部门;
3. 多对多
比如:学生和课程
一个学生可以选择多门课程,一门课程可以有多个学生;
要想完成多对多的关系,我们需要借助第三张表,两张表的主键分别作为第三张表的外键

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值