MySQL建表时需要注意什么?

MySQL建表的经验较多,列举部分:

  1. 注意选择存储引擎,如果要支持事务选择InnoDB。

  2. 注意字段类型的选择,对一日期类型如果要记录时分秒建议使用datetime,只记录年月日使用date类型;对于字符类型的选择,固定长度字段选择char,不固定长度的字段选择varchar,varchar比char节省空间但速度没有char快;对于内容介绍类的长文本字段使用text或longtext类型;如果存储图片等二进制数据使用blob或longblob类型;对金额字段建议使用decimal;对于数值类型的字段在确保取值范围足够的前提下尽量使用占用空间较小的类型。

  3. 主键字段建议使用自然主键,不要有业务意义,建议使用int unsigned类型,特殊场景使用bigint类型。

  4. 如果要存储text、blob字段建议单独建一张表,使用外键关联。

  5. 尽量不要定义外键,保证表的独立性,可以存在外键意义的字段,也就是说不要使用物理外键,尽量使用逻辑外键。

  6. 设置字段默认值,比如:状态、创建时间等。

  7. 每个字段写清楚注释。

  8. 表必备三字段:id, gmt_create, gmt_modified。其中 id必为主键,类型为 unsigned bigint、单表时自增、步长为 1. gmt_create,gmt_modified的类型均为 date_time类型。

  9. 注意字段的约束,比如:非空、唯一、主键等。

  10. 字段唯一约束的话,该表有逻辑删除,那需要注意逻辑删除的唯一字段。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值