Mysql优化-表的设计

  • 什么样的表才是符合3NF(范式)

表的范式,是首先符合1NF,才能满足2NF,进一步满足3NF

 

1NF:即表的列具有原子性,不可再分解,即列的信息,不能分解,只要数据库是关系型数据库(mysql,oracle,db2,informix,sysbase,sql server),就自动的满足1NF

 

2NF:表中的记录是唯一的,就满足2NF,通常我们设计一个主键来实现(主键一般自增长的,不包含业务逻辑,所以比较稳定)

 

3NF:即表中不要有冗余数据,就是说,表的信息,如果能够被推导出来,就不应该单独的设计一个字段来存放,比如下面的设计就是不满足3NF:

 

 符合3NF的情况:

 

 

反3NF:但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余。

 

 

 总结:

 

posted @ 2020-09-16 00:01  违和感  阅读(153)  评论(0)    收藏  举报