数据库设计规范

本文介绍了数据库设计规范,包括所有表必须包含的公共字段如主键id、乐观锁、创建及更新时间戳,以及字段类型的选择,如建议使用bigint unsigned而非bigint,varchar字段长度合理设置,确保所有字段非空并有默认值,以及创建时间与更新时间字段的默认值设定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库设计规范

1、所有的表都必须有几个公共字段

主键id、乐观锁、创建时间、更新人、更新时间、删除标志(这里的删除都是逻辑删除、使用update

`id` bigint unsigned NOT NULL COMMENT '主键id',
  `revision` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁',
  `creator` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '创建人',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '更新人',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `del_flag` int unsigned NOT NULL DEFAULT '0' COMMENT '删除标志(0,未删除,1删除)',

2,id等数字类型的字段,不建议是bigint,应该是bigint unsigned

1)、bigint
默认是有符号,即取值范围是正负范围
比如:bigint(20),就是-1234567890123456789~+1234567890123456789
2)、bigint unsigned
无符号,即取值范围就是正值范围
比如:bigint(20),就是+12345678901234567890

3)、varchar默认长度为32,不要用255,
基本上32就可以了,如果确定长度可能非常大才会使用255
通常情况下使用varchar(32)和varchar(255)占用的空间都是一样的,但是使用索引长度有所不同。所以在设计时尽量保持一个合理的长度范围。
4)、所有字段都必须是非空,必须有默认值
避免程序出现空指针,可以默认值为空字符串
5)、create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,

创建时间和更新时间设为默认时间为当前时间CURRENT_TIMESTAMP
更新时间设为默认时间是当前时间CURRENT_TIMESTAMP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值