数据库设计需要达到的目的
1:尽量避免数据的冗余
2:方便对数据的维护(增删改查)
数据库的设计要遵循三范式
1:第一范式 : 属性不可分割 即每个属性都是不可分割的原子项
2:第二范式:满足第一范式;且不存在部分依赖,即非主属性必须完全依赖于主属性。(主属性即主键;完全依赖是针对于联合主键的情况,非主键列不能只依赖于联合主键的一部分)
3:第三范式:满足第二范式;且不存在传递依赖,即非主属性不能与非主属性之间有依赖关系,非主属性必须直接依赖于主属性,不能间接依赖主属性。(A -> B, B ->C, A -> C)
经验:
1:一张表只能描述一个实体
2:如果实体与实体之间是一对多的关系,通过外键去维护一对多的关系,外键设计在多的一方
如果两个实体是一对一的关系?
则通过外键来维护实体之间的一对一的关系,外键可以放在任何一方。