关于一对多,举个例子,一个用户组可以包含多个用户,每个用户只能属于一个用户组。一个人可以有多辆车,每辆车只能属于一个人。这些都是一对多的关系。
 打个比方,一个人可以有多辆车,每辆车只能属于一个人。
 两张表,一张表Person,一张表Car。关键是他们两个之间在数据库表中怎么设计关联呢?
 Person id<int> name<vechar>; 
 Car id<int> color<vachar>;
 错误做法:
 1.在一方加冗余
 Person id<int> name<vechar> car_id<int>; 
 Car id<int> color<vachar>;
 为什么会产生冗余?如果有一个人id=1,name=zhangsan,他有两辆车,一辆颜色为红色,一辆颜色为黄色,这样就要存两个字段
 id=1,name=zhangsan,car_id=1
 id=1,name=zhangsan,car_id=2
 解决办法:person取消car_id字段,在car一方加一个person_id(因为一辆车只能属于一个人).
 即是“在多方加外键”的方式。
 三大范式:
 1.要有主键,列不可分
 2.联合主键的情况不能出现部分依赖
 3.不能存在传递依赖
 原则:不要让数据产生冗余!同样的数据存一份就可以。
但老鸟的原则是:具体问题,具体分析,实事求是。










