关于数据库表、字段的命名原则

请注意,为了有效生成接口文档和数据库文档,必须进行数据库表、字段的备注填写,表名的备注为对象中文名,例如:

  • user:用户账户
  • pms_spu:产品SPU
  • pms_category:产品分类

一些常规的命名:昵称/nick_name;封面/cover等

随着我们项目经验的积累,以往我们很纠结数据库的字段类型,但实施了数据分析平台项目后,发现字段类型对检索效率等的影响并不大,因此针对数据库的字段定义制定如下规范,简单可落地,如有哪位同事有疑问或者意见,我们可以探讨。

  • int:一般是id字段
  • varchar(255):一般input值,不需要纠结,长度无所谓,姓名、昵称、手机号等
  • int:sort、sale_num等数值类型数据,请注意之前我们的排序是seq,现在改为sort
  • datetime:created_at、updated_at、deleted_at
  • json:比较好用的字段类型,mysql5.7以上都可以支持,请注意,全部json类型的字段必须以json结尾,这样gcoder生成Model层代码的时候会自动设置
  • text:一般备注、描述等不需要检索的长字段用text
  • mediumText:富媒体,全部富媒体字段都要用_html结尾,例如content_html
  • decimal:金钱
  • double:经纬度

此外,所有的库表不允许使用s结尾,不要使用单复数一个的单词,例如商品不要起名为good,要起名为product

库表最好分模块,例如gcoder样例中的account_为账户模块,rbac_为权限模块

针对于一对一关系的表,那么需要将外键字段设置为唯一,例如user和user_purse表,在user_purse表中的user_id就应该是unique的索引,确保唯一性

Last Updated:
Contributors: mtt-Ada@yisa.art