今日重点:外键 一对多
多对多
一对一
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一、引言:
我们在同一数据库创建的表时候,很多时候会出现相同数据的冗余问题,也就是说几个id会有一个或者同n个相同字段,这样就导致数据表结构数据重复冗余,
冗余还无所谓,关键是如果我要改其中一个相同的字段信息,其他跟他相同字段的信息也都要同步修改,这就增加了很多工作量,特别是如果要处理大量数据的时候
所以需要有一种解决方式来处理这种显而易见的问题。
例如:
id
name
gender
dep_name
dep_desc
1
jason
male
外交部
形象代言人
2
egon
male
教学部
教书育人
3
kevin
male
教学部
教书育人
4
tank
male
教学部
教书育人
5
jerry
female
技术部
技术负责人
很显然,上表的id为2/3/4的人员同属于一个字段名(部门)教育部,部门描述也是一样。解决方法:拆分为2个表
+----+-------+--------+--------+
| id | name | gender | dep_id |
+----+-------+--------+--------+
| 1 | jason | male | 1 |
| 2 | egon | male | 2 |
| 3 | kevin | male | 2 |
| 4 | tank | male | 2 |
| 5 | jerry | female | 3 |
+----+-------+--------+--------+
+----+-----------+--------------------------+
| id | dep_name | dep_desc |
+----+-----------+--------------------------+
| 1 | 外交部 | 形象代言人 |
| 2 | 教育部 | 教书育人 |
| 3 | 技术部 | 技术负责人 |
+----+-----------+--------------------------+
"""把所有数据都存放于一张表的弊端
1.组织结构不清晰
2.浪费硬盘空间
3.扩展性极差"""
#上述的弊端产生原因类似于把代码全部写在一个py文件中,你应该怎么做?>>>解耦合!将上述一张表拆成员工和部门两张表