以下是我对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 注意字段的约束,比如,非空、唯一、主键等。