第一范式:任何一张表都应该有主键,每个字段是原子性的不能再分。
第二范式:建立在第一范式基础上,另外要求所有非主键字段完全依赖主键,不能产生部分依赖。 学生编号(PK)教师编号(PK)学生姓名教师姓名10011张三王老师10022李四赵老师10031王五王老师10012张三赵老师 上表虽然符合第一范式,但违背第二范式,学生姓名、老师姓名都产生了部分依赖,导致数据冗余。
第三范式:建立在第二范式基础上,非主键字段不能传递依赖于主键字段。 学生编号(PK)学生姓名班级编号班级姓名1001张三1一年一班1002李四2一年二班1003王五3一年三班1004赵六3一年三班 上表因为产生了传递依赖,导致班级名称冗余。
一对多(学校 - 学生):一对多两张表,多的表加外键。
多对多(学生 - 课程):多对多三张表,关系表加外键。
一对一第一种方案:主键共享。 hid(主键)hname1张三2李四3王五wid(主键+外键)wname1小花2小兰3小红 一对一第二种方案:外键唯一。 hid(主键)hname1张三2李四3王五wid(主键)wnamehid(外键+unique)1小花12小兰23小红3 最终设计以满足客户需求为原则,有的时候会拿空间换速度。
本文作者:a
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!