Skip to content

Latest commit

 

History

History
48 lines (23 loc) · 2.21 KB

002库和表的规范.md

File metadata and controls

48 lines (23 loc) · 2.21 KB

第二章 库和表的规范

2.1 库

【规则2-1.1】 库的创建原则,根据项目和模块划分,尽量保持相同垂直业务模块的表位于同一库。

【规则2-1.2】 库的默认引擎统一为InnoDB 语言编码统一为utf8_general_ci

【规则2-1.3】 库的命名规则: 库名的字符范围为[a-z0-9],统一为小写字母,按下划线_分割,需简介明了,按项目字母简写_模块名规则排列,长度不超过30个字符, , 比如项目为bx,用户模块为user 则用户数据库的命名为bx_user。

 【规则2-1.4】  数据库的设计,应该是做到冷热数据分离。

2.2 数据表

【规则2-2.1】 数据表的创建原则,根据模块划分,尽量保持单一业务模块为一个数据表系列。

【规则2-2.2】 数据表的命名,字符范围为[a-z09],统一为小写字母,按下划线分割。每个表必须有自增主键,表与表的相关联字段,必须尽可能保持相同,前缀必须带上项目简写。 例: 项目bx,用户数据表,便为bx_user, bx_user_info, bx_user_extend等。

【规则2-2.3】 表字段的创建原则,在InnoDB引擎下,用尽量少的存储空间在存储字段数据,减少内存占用,比如 int varchar等,必须指定长度,能用smallint tinyint 的 就不要用int,能用int(8)的,就不要用int(10);每个字段尽可能保持NO NULL 和默认值,增加查询和索引效率。

【规则2-2.4】 数据表的索引创建原则,命名简洁明了,尽量与字段名产生关联,bx_user的username字段建立索引的名称,需为bx_user_username_index,也可简写为bxu_username。

【规则2-2.5】 每个表必须有主键索引,索引应该合理,并每个表不超过6个索引,慎用复合索引。

2.3数据库范式

【范式2-3.1】 字段名必须具备原子性,即不可能产生下一个子字段,比如name。

【范式2-3.2】 每个表必须有主键和主键索引。

【范式2-3.3】 一个表,非考虑扩展性情况下,不能有冗余字段,即尽量保持精简和减少无意义字段,但在为了减少join查询,可适当在不同表添加相同字段