一、数据字典规范
(一)建表规约
1.1 命名规约
【强制】
1. 库名、表名必须使用小写字母或数字,“_”分割,禁止以数字或大写字母开头,两个下划线之间不出现数字,其中库名不超过15个字符, 表名不超过20个字符。数据表名统一使用“t_”开头,使用“t_业务名称_表的作用”英文单词的规则命名。
正例:t_order_content, t_business_type, t_level3_name
反例:tAreaCity, t_kehuXinxi, t_level_3_name, 2customer_city
说明:MySQL配置参数lower_case_table_names如设置为0以实际表名存储区分大小写,如果大小写混合用,可能存在t_order,t_Order等多个表共存,容易导致混乱。为了统一规范,库名、表名、字段名使用小写字母。
【强制】
2. 字段名使用大小写字母或数字,禁止以数字或大写字母开头,字段名长度不超过15个字符。
易订货产品统一使用 “f + 字段作用” 英文单词的规则命名。
正例:fdbid, fcustomerid, fusername, fcreatetime
反例:FPRODUCTNAME, Productcode, Funit_Name, F_2_Price
解决方案产品直接使用 “字段作用 + _(多单词分割)” 的规则命名,不加“f”前缀。
正例:dbid, customer_id, user_name, create_time
反例:fdbid, Customerid, productcode, F_2_Price
【推荐】
3. 表名要见名知意,建议使用名词而不是动词。如订单内容表:t_order_content。
说明:库表是一种客观存在的事物,一种对象,所以建议使用名词。
【推荐】
4. 表名不使用复数名词,表名应仅仅表示表里面的实体内容,不应该表示实体数量,对应于DO类也是单数形式,符合表达习惯。
1.2 字符集规约
【强制】
1. 数据表字符集统一utf8mb4, 校对规则统一utf8mb4_general_ci。
说明:utf8mb4兼容utf8,能够用四个字节存储更多的字符。
CREATE TABLE `t_user_info` (
`fid` BIGINT UNSIGNED NOT NULL PRIMARY KEY,
`fname` VARCHAR(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
1.3 引擎规约
【推荐】
1. 建议使用InnoDB存储引擎, MYSQL 5.5以后的默认引擘,支持事务处理与外键和行级锁,更好的恢复性,高并发下性能更好,对多核、大内存、SSD等硬件支持更好。
1.4 主外键规约
【推荐】
1. 数据表须设计主键,一般为fid, 类型为unsigned bingint。
说明:建议不使用UUID作主键,虽然UUID可以很好的生成全局主键,在分布式的方案中有时会 需要用uuid,但是缺点也是非常明显的。由于UUID非常的长,除占用大量存储空间外,最主要 的问题是在索引上,在建立索引和基于索引进行查询时都存在性能问题。
【推荐】
2. 表的主键设计可从单独sequence表中取值。
说明:主键设计一般不建议使