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

被折叠的 条评论
为什么被折叠?



