多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## **字段类型的选择** 优先考虑数字类型,其次是二进制类型 最后时字符串类型 对于相同级别的数据类型应该优先选择占用空间小的数据类型 ![](https://img.kancloud.cn/28/07/2807223132ba77f810139d0d84c0e1cb_360x200.png) 如: 生日字段: char(10)         '1978-03-01'   定长 varchar(20)    '1978-03-01'  变长 Datetime        1978-03-01 int                  257529600 **字符串:char与varchar** 确定长度一致时选择char类型 不确定就用 varchar 如果列中的最大数据长度小于50byte(50字节)则一般也考虑用cahr(当然如果这个列很少被读取,基于节省空间和I/O的考虑,还是可以选择用varchar) 一般不宜定义大于50byte的char类型列(utf8中一个汉字占4个字节那么 50/3 大概超过16个汉字就不宜使用cahr类型) **小数点:decimal于float的选择** decimal用于存储精确的数据,而float只用于存储非精确数字,所以精确的数据只能选择用decimal类型  如跟钱有关的 由于float的存储空间开销一般比decimal小(精确到后7为只需4个字节,精确到15只需要8字节),非精确小数尽量用float类型 **避免使用外键约束:** 降低数据导入的效率 增加维护的成本 虽然不建议使用外键约束但是相关关联的列上一定要建立索引 **避免使用触发器:** 降低数据导入的效率 可能出现意想不到的数据异常 是业务逻辑变复杂 预留字段:严禁使用预留字段