数据库的设计
2016-01-15 17:53
267 查看
设计原则: 建议设计的表尽量遵守三大范式。
第一范式: 要求表的每个字段必须是不可分割的独立单元
student : name – 违反第一范式
张华|张小华(先用名/曾用名)
sutdent : name old_name –符合第一范式
张华 张小华
第二范式: 在第一范式的基础上,要求每张表只表达一个意思。表的每个字段都和表的主键有依赖。
employee(员工): 员工编号 员工姓名 部门名称 订单名称 –违反第二范式
员工表:员工编号 员工姓名 部门名称
订单表:订单编号 订单名称 – 符合第二范式
第三范式: 在第二范式基础,要求每张表的主键之外的其他字段都只能和主键有直接决定依赖关系。
员工表: 员工编号(主键) 员工姓名 部门编号 部门名 –符合第二范式,违反第三范式 (数据冗余高)
员工表:员工编号(主键) 员工姓名 部门编号 –符合第三范式(降低数据冗余)
部门表:部门编号 部门名
第一范式: 要求表的每个字段必须是不可分割的独立单元
student : name – 违反第一范式
张华|张小华(先用名/曾用名)
sutdent : name old_name –符合第一范式
张华 张小华
第二范式: 在第一范式的基础上,要求每张表只表达一个意思。表的每个字段都和表的主键有依赖。
employee(员工): 员工编号 员工姓名 部门名称 订单名称 –违反第二范式
员工表:员工编号 员工姓名 部门名称
订单表:订单编号 订单名称 – 符合第二范式
第三范式: 在第二范式基础,要求每张表的主键之外的其他字段都只能和主键有直接决定依赖关系。
员工表: 员工编号(主键) 员工姓名 部门编号 部门名 –符合第二范式,违反第三范式 (数据冗余高)
员工表:员工编号(主键) 员工姓名 部门编号 –符合第三范式(降低数据冗余)
部门表:部门编号 部门名
相关文章推荐
- sql:数据操作语言dml
- MySQLdb模块用法
- mysql连接查询和in的效率取舍
- oracle数据库中有clob字段表结构数据的分组查询
- Oracle数据库中外键的相关操作整理
- 彻底删除mysql-尤其是最后最后一步出现问题
- mysql约束
- MySQL的FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别
- oracle 和MySQL 查询的时候日期的一些处理方法
- Redis Manager
- oracle中sqlldr工具使用时注意事项
- SQL执行效率和性能测试方法总结
- 在Oracle数据库中添加外键约束的方法详解
- mysql批量生成修改表和列注释语句
- oracle在敏感操作前创建还原点
- MySQL 5.6 root密码丢失,使用mysqld --skip-grant-tables
- SQL语法结构
- PostgreSQL Insight Monitor pgstat
- Redis源码学习感悟
- 【转】Oracle用户、授权、角色管理