以下是我对MySQL建表时的注意事项。其实,建表事项有很多,我的总结如下:
1 存储引擎的选择,一般做开发,都是要支持事务的,所以选择InnoDB
2 对字段类型的选择:
对于日期类型如果要记录时分秒,建议使用datetime
对于日期类型如果只记录年月日,则使用date类型
对于字符类型的选择,固定长度用char,不固定长度用varchar (varchar比char节省空间但速度没有char快)
对于内容介绍类的长文本字段使用text或longtext
对于存储图片等二进制数据使用blob或longblob类型
对于金额字段建议使用decimal
对于数值类型字段在确保取值范围足够的前提下,尽量使用占用空间较小的类型
3 主键字段使用自增id,不要用具有业务意义的字段作为主键(比如手机号码,身份证号码等)。建议使用int unsigned类型,特殊场景,如数据量较大的情况,使用bigint类型
4 如果要存储text,blob字段建议单独建一张表,并加入一个引用字段和主表关联
5 字段设置默认值,比如:状态,创建时间等。
6 尽量不要定义外键(参考阿里规范手册),保证表的独立性
7 每个字段都写清楚注释
8 注意字段的约束,比如,非空、唯一、主键等。