关于数据库表、字段的命名原则
请注意,为了有效生成接口文档和数据库文档,必须进行数据库表、字段的备注填写,表名的备注为对象中文名,例如:
- 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的索引,确保唯一性