數據庫基礎設計
今天早上開早會的時候,長老在指點新人的時候說到設計數據庫,每個表都要有id、創建時間和修改時間,這是阿里的規范thinkphp字段添加到數據庫,還有一個就是是否邏輯刪除。
這里說一下 的設置方法和建表語句(最底下)。
id規范
id設置自增,類型為thinkphp字段添加到數據庫,后面的這個代表無符號,類型這樣填,下面就會自動勾選無符號。
規范
創建時間類型為,下面默認值填
規范
同上只不過加了個勾選根據當前時間戳更新,這樣我們每次更新數據,他就會自動變動了。
所以這兩個時間戳我們都不用去操作,交給數據庫就行了,這些功能mysql的建表語句支持的,只是把他可視化,更方便我們操作。
規范
邏輯刪除,類型為類型,長度1,只有兩個值0和1,0代表否,1代表是。
這個字段代表是否邏輯刪除,1為 是 刪除,0為 否 未刪除。
所以可以在下面填個默認值0.
-plus整合 邏輯刪除
-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;
建表模板
最后是建表語句,可以先執行一遍,再用慢慢去加字段,不然這些一個個的設置挺麻煩的,反正都是一個樣子,然后和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;