MySql 规范
无任何基础,不懂二进制,边学边做边挣钱,靠毅力从上而下【逆向钻研,逆练九阴真经】,经过山路十八弯,一言难尽,最终逆学成才。胸怀天下,下一个项目将直击天下人,革命,众神归位; /
2024-04-24 /
原文
强制要求
| 类型 | 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表示true,0表示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 | Byte | 由于delphi里的Byte是无符号的,所以要求 枚举最多0-127 共128个元素,足以了; 举例:CREATE TABLE your_table_name ( id INT AUTO_INCREMENT PRIMARY KEY, tinyint_column TINYINT, CHECK (tinyint_column IN (0, 1, 2)) ); |
生成 Java model类的时候,必须使用我们自己的 mybatis-generator;除了以上外,强制要求 其它自由;
主键的规范
主键 需要使用 bigint,并设置成自增长模式,暂时这样;后续会提供主键生成器模块;
自增长 的弊端是若插入失败或 增加后又删除 就会导致主键资源的浪费;我们后续会开发主键生成器中间件,来解决主键浪费的问题;以Java 举例,这个主键生成器将以jar包的方式提供,继承在项目中,通过配置一下 表名就可以了,项目中使用主键 就调用主键生成器提供的方法来拿到主键,多线程并发安全;主键生成器将定时扫描 回收那些被浪费的主键资源;