多表设计

为什么要设计多表?

要存储不同的信息

为什么多表需要关联

数据与数据之间的关系

可以减少数据的冗余

表设计原则

数据库设计范式

为了设计出冗余小,结构合理

数据库设计3范式

  • 第一范式:表中列的原子性 列不可拆分,例如:联系方式?有歧义,可以是电话、QQ、邮箱、这样是错误的

  • 第二范式:要有主键,其他列依赖于主键,并且主键是惟一的,可以表示一条记录

  • 第三范式:不同的表只存储一类信息,通过相互编号关联即可

CREATE TABLE grade(

id INT PRIMARY KEY AUTO_INCREMENT,

NAME VARCHAR(20)

)

-- 在学生表中添加年级的id

ALTER TABLE student ADD COLUMN gradeid INT

-- 在多表关联时,有两种关联方式:

-- 1.弱关联 表与表之间没有任何约束关系的,修改,删除时没有任何的影响

-- 2.强关联 外键约束

-- 添加外键约束 修饰student表 添加约束 外键列 gradeid 引用关联 grade表中的id列

ALTER TABLE student ADD CONSTRAINT fk_student_grade_gradeid FOREIGN KEY(gradeid) REFERENCES grade(id)

  • 所谓强关联就是当一个表使用了另一个表进行外键约束,那么这两个表就不能随意更改自身表的信息了

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐