今天面试的时候被问到,之前对于表结构设计接触不多,学习了一下,记录一下。
多对多关系建表。
1、直接建表
比如:
学生id |
爱好id |
学生名字 |
爱好名字 |
班级 |
性别 |
爱好类型 |
1 |
1 |
张三 |
篮球 |
1 |
男 |
球类 |
1 |
2 |
张三 |
足球 |
1 |
男 |
球类 |
1 |
3 |
张三 |
跑步 |
1 |
男 |
有氧 |
2 |
1 |
李四 |
篮球 |
3 |
女 |
球类 |
2 |
2 |
李四 |
足球 |
3 |
女 |
球类 |
2 |
3 |
李四 |
跑步 |
3 |
女 |
有氧 |
不符合范式的关系,会产生很多异常。
冗余数据。
修改异常。
删除异常。
插入异常。
2、把爱好和学生建在两个表中,两张表存在对方表的主键就可以。也就是外键