数据库设计规范(简易版)1.0

  1. 数据库设计的原则

  1. 数据库设计三大范式(简易理解版)

  1. 创建表的属性

字符集选utf-8_mb4

排序规则:utf8mb4_0900_ai_ci

  1. 字段设计规则:

1.所有的表都必须有几个公共字段,方便联表查询。

自增ID

id必为主键,类型为unsigned bigint、单表时自增、步长为 1。若业务场景需要或未来有分库分表扩展需求,类型为unsigned bigint,建议采用唯一id设计,如SnowFlake雪花ID算法,请最后考虑UUID。

创建时间&修改时间

创建时间create_time和修改时间update_time这两个字段,每个表都必须有! 数据类型为datetime。

注意,一定要用数据的时间戳,自动生成。不要通过代码去操作这两个字段。推荐使用AOP去自动处理。

有了这两个字段。你可以追溯到数据的时间点,创建和修改的时间点。极大方便你在某些情况下的排查数据问题。

创建人&修改人

创建人create_by和修改人update_by两个字段,每个表也都必须有。数据类型为unsigned bigint(关联用户id)或varchar(关联登录名,确保不变)

还是和前面一个原因,出问题的时候可以追溯起因,否则遇上日志过久无法查看或者其他原因出现未知数据,都不知道数据怎么来的,需要花非常大的代价查看日志、代码等。

软删除

只能逻辑删除,不能物理删除。

2.id等数字类型的字段,不能只是bigint,应该是bigint unsigned,bigint有符号,bigint unsigned无符号

3.varchar默认长度为32,不要用255,用不了那么多

4.所有字段都必须是非空,必须有默认值,字符型的默认值为一个空字符值串,数字型的默认值为数值0。

5.数据库中所有布尔型中数值0表示为假;数值1表示为真

6.选择更简单的数据类型。例如,比较整数的代价小于比较字符,因为字符集和排序规则使字符比较更复杂

  1. 命名规范

1.总则

(1)所有命名采用26个英文大小写字母和0-9这十个自然数,加上下划线_组成。不能出现其他字符(注释除外)。

(2)长度不超过30个字符。

(3)实际名字尽量描述实体的内容,由英文单词、单词组合或单词缩写组成,不以数字和_开头。

(4)命名中禁止使用SQL关键字。

(5)对象名尽量短。

2.表

表以单数形式名词或名词短语命名。如果表名仅有一个单词,那么建议不使用缩写,而是用完整的单词。

数据表 t_inf_<系统标识>_<表标识>

编码表 t_cod_<系统标识>_<表标识>

系统表 t_sys_<系统标识>_<表标识>

统计表 t_sta_<系统标识>_<表标识>

临时表 t_tmp_<系统标识>_<表标识>

日志表 t_log_<系统标识>_<表标识>

3.字段

采用有意义的字段名,应该是易于理解,能表达字段功能的英文单词或单词缩写,一般不超过三个英文单词。

系统中所有属于内码的字段(仅用于表示唯一性和程序内部用到的标识性字段),名称取为:ID。

系统中属于是业务范围内的编号的字段,其代表一定的业务信息,这样的字段建议命名为CODE,其数据类型为VARCHAR,该字段需加唯一索引。

字段名不要与表名重复

不要在列的名称中包含数据类型。

4.主键

PK_<表名>

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值