在字段的命名上必须使用全小写以下划线链接的方式来命名字段,如 "display_name",不允许使用拼音与英文混淆的方式来命名,即使纯拼音的方式也要避免采用
如在表达 BOOL 类型的时候应当用 is_xxx 来表示,对于任何非负数的字段应当使用 UNSIGNED 类型
表名应该仅仅表示表里面的实体内容,不应该表示实体数量
比如在使用 MySQL 的时候应当避免使用官方保留字如 desc、range、match、delayed 等
FLOAT 和 DOUBLE 在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不正确的结果。如果存储的数据范围超过 DECIMAL 的范围,建议将数据拆成整数和小数分开存储
使用 CHAR 存储定长字符串;使用 VARCHAR 时需要注意长度,大部分时候用 255 及 1024,超过 5000 时使用 TEXT 类型
id 类型为 UNSIGNED BIGINT,可用自增、步长为1; created_at 类型为对应数据库的日期类型; updated_at 类型为对应数据库的日期类型
为了一些性能优化的场景允许字段适当冗余,但要注意冗余字段不应该是常修改的字段
三年内达不到该量级的不需要分表操作
如温度应使用摄氏度,面积应使用平方米
唯一索引会降低一些可以忽略的 INSERT 性能,但是会大幅提高速度以及为数据做校验
即使双表 JOIN 也要注意表索引、SQL 性能
存储过程难以调试和扩展,更没有可移植性
在订正数据前应先 SELECT 避免出现误删,确认无误才能执行更新语句
如果实在无法避免,应先定 IN 的元素在 1000 个以内
应当枚举字段列表而不应该使用 * ,否则会增加查询分析器的解析成本以及容易与最后的 Mapping 不一致