关闭

MySQL数据库优化技术之数据库表的设计

发表于:2014-11-19 11:11

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:瞌睡中的葡萄虎    来源:51Testing软件测试网采编

  三范式介绍
  表的范式:只有符合的第一范式,才能满足第二范式,进一步才能满足第三范式。
  1、第一范式:
  表的列具有原子性,不可再分解。只要是关系型数据库都自动满足第一范式。
  数据库的分类:
  关系型数据库:MySQL/ORACLE/Sql Server/DB2等
  非关系型数据库:特点是面向对象或者集合
  nosql数据库:MongoDB(特点是面向文档)
  2、第二范式:
  表中的记录是唯一的,就满足第二范式。通常我们设计一个主键来实现。
  主键一般不含业务逻辑,一般是自增的;
  3、第三范式:
  表中不要有冗余数据,即如果表中的信息能够被推导出来就不应该单独的设计一个字段来存放;对字段冗余性的约束,要求字段没有冗余。
  如下表所示,符合三范式要求:
  student表
  class表
  如下表所示,不符合三范式要求:
  student表
  class表
  反三范式案例:
  一个相册下有多个图片,每个图片有各自的浏览次数,相册有总的浏览次数。
  相册浏览表
  图片表:
  如果相册浏览表没有适当的冗余,效率有影响。
  冗余比较可以得出一个结论:1对N时,冗余应当发生在1的一端。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号