数据库设计时必须有的4个字段,id、创建时间、修改时间和...
今天早上开早会的时候,长老在指点新人的时候说到设计数据库,每个表都要有id、创建时间和修改时间,这是阿里的规范,还有一个就是是否逻辑删除。这里说一下 navicat的设置方法和建表语句。id规范id设置自增,类型为bigint unsigned,后面的这个unsigned代表无符号,类型这样填,下面就会自动勾选无符号。create_time规范创建时间类型为datetime,下面默认值填 CURR
今天早上开早会的时候,长老在指点新人的时候说到设计数据库,每个表都要有id、创建时间和修改时间,这是阿里的规范,还有一个就是是否逻辑删除。
这里说一下 navicat的设置方法和建表语句(最底下)。
id规范
id设置自增,类型为bigint unsigned,后面的这个unsigned代表无符号,类型这样填,下面就会自动勾选无符号。
create_time规范
创建时间类型为datetime,下面默认值填 CURRENT_TIMESTAMP
update_time规范
同上只不过加了个勾选根据当前时间戳更新,这样我们每次更新数据,他就会自动变动了。
所以这两个时间戳我们都不用去操作,交给数据库就行了,这些功能mysql的建表语句支持的,navicat只是把他可视化,更方便我们操作。
is_deleted规范
逻辑删除,类型为tinyint类型,长度1,只有两个值0和1,0代表否,1代表是。
这个字段代表是否逻辑删除,1为 是 删除,0为 否 未删除。
所以可以在下面填个默认值0.
mybatis-plus整合 逻辑删除
mybatis-plus还支持逻辑删除哦!官方文档
首先是yml中配置。
mybatis-plus:
configuration:
map-underscore-to-camel-case: true
auto-mapping-behavior: full
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath*:mapper/**/*Mapper.xml
然后在自己的po的对应字段上面加一个注解即可
@TableLogic
private int isDeleted;
建表模板
最后是建表语句,可以先执行一遍,再用navicat慢慢去加字段,不然这些一个个的设置挺麻烦的,反正都是一个样子,然后tablename和id自己改成自己的即可,这算是阿里巴巴的规范,如果自己公司有不一样的规范,自行调整。
DROP TABLE IF EXISTS `tablename`;
CREATE TABLE `tablename` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
`create_time` datetime DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_deleted` tinyint(1) unsigned zerofill DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
更多推荐
所有评论(0)