第 2 章Mysql数据库()设计

我们的表要满足1NF 基础上,才可以谈满足2NF, 目前最高级6NF,PHP网站说,我们只要满足3NF

1.1数据库的分类

1.1.1关系型数据库

比如mysql, oracle, sql server ,postgresql,informix,DB2

1.1.2非关系型数据库

面向对象和集合数据库.

1.1.3介于关系型和非关系型数据库间

mongodb数据库面向文档


2.2 1NF

所谓1NF:属性()具有原子性,不可在分割, 还有就是把同一张表不可以有两个相同列.

2.3 2NF

所谓2NF: 说表的记录具有唯一性., 即不能出现完全相同的两条记录.一般说,通过设置主键即可.

注意;主键最好是非业务逻辑主键,使用自增长.

2.4 3NF

3NF要保证数据没有冗余.即如果数据可能通过显示或者隐式的推导出,就不要单独设计一列.



比如下图就是满足3NF:

韩顺平 Mysql数据库优化(二) 数据库(表)设计_第1张图片

但是说明; 有时我们设计表的时候,可能会使用反3NF.,举例:


韩顺平 Mysql数据库优化(二) 数据库(表)设计_第2张图片

上面的相册表的设计就使用到了反3NF,但是他提高了效率


   点击观看本章节视频讲解: http://www.tudou.com/programs/view/0Kj4sBsR3eI/

   未完待续...