数据库设计规范

本文详细介绍了数据库设计的规范,包括数据字典、字符集、存储引擎、主外键、字段、索引和过程等方面的规则。强调了命名规范、数据类型选择、避免使用ENUM、TEXT类型,以及合理使用索引的重要性。此外,还提出了存储过程和视图的操作建议,以及SQL查询的优化策略,如避免使用SELECT *、DELETE无条件删除和TRUNCATE TABLE等。
摘要由CSDN通过智能技术生成

数据库设计规范

 

一、数据字典规范

(一)建表规约

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表中取值。

说明:主键设计一般不建议使

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值