强制要求

类型 MySQL Java Delphi 备注
日期(Date)、日期时间(DateTime) BigInt Long Int64 通常单位为秒即可,特殊情况下才可以使用毫秒;
Boolean值 Tinyint(1),要求非空 Boolean Boolean mybatis-generator也会自动生成Boolean,声明一个is_active boolean类型示例:CREATE TABLE example_table ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, is_active BOOLEAN NOT NULL );在MySQL中,没有专门的boolean数据类型。但MySQL使用TINYINT(1)作为boolean的等价物。当你声明一个字段为BOOLEAN时,MySQL实际上会将其视为TINYINT(1),其中1表示true0表示false
货币类型 int/bigint Integer/Long Integer/Int64 单位为分,那么Integer 的范围是:-21474836.48 --> 21474836.47;可见最大2000万元左右,一般的金额可以使用Integer,比如员工工资,这个不可能超过2000万,故用Integer;若会超过2000万 则使用 Int64,Int64的范围不写了,足以了
枚举类型 Tinyint,要求非空,+ 使用check约束(MySQL从8.0.16版本开始提供对check约束的原生支持) Byte Shortint 枚举最多-128-127 共256个元素,足以了; 举例:CREATE TABLE your_table_name ( id INT AUTO_INCREMENT PRIMARY KEY, tinyint_column TINYINT, CHECK (tinyint_column IN (-5,0, 1, 2)) );

生成 Java model类的时候,必须使用我们自己的 mybatis-generator;除了以上外,强制要求 其它自由;

主键的规范

主键 需要使用 bigint,并设置成自增长模式,暂时这样;后续会提供主键生成器模块;

自增长 的弊端是若插入失败或 增加后又删除 就会导致主键资源的浪费;我们后续会开发主键生成器中间件,来解决主键浪费的问题;以Java 举例,这个主键生成器将以jar包的方式提供,继承在项目中,通过配置一下 表名就可以了,项目中使用主键 就调用主键生成器提供的方法来拿到主键,多线程并发安全;主键生成器将定时扫描 回收那些被浪费的主键资源;

posted on 2024-04-24 11:20  del88  阅读(3)  评论(0编辑  收藏  举报