# 数据库设计规范 我们在设计插件数据库时最好统一设计规范,因为更好的设计规范能更好的让我们的用户更快速的掌握我们开发者的设计思想。 1. 表名和字段名全小写,只允许出现`a-z`和`_`这几种字符,且不能有拼音,只能为英文单词 2. 存储引擎统一使用`innodb`引擎 3. 字符集统一使用`utf8mb4_general_ci` 4. 关联字段统一使用`_id`结尾,如`user_id`,`task_id`(任务表名为task),`item_id`(物品表名为item), 当为`father_id`,`parent_id`,`pid`,`prev_id`等字段时表示和当前表主键进行关联,当为`task_ids`,`user_ids`时表示一个集合,以半角逗号进行分隔(非JSON) 5. 时间统一使用`Unix时间戳`格式, 秒级, 整型, 长度10,且必须以`time`结尾, 如`createtime`,`updatetime`,`paytime`,`expiretime`等 6. 时长统一使用秒格式, 整型, 长度10,且必须以`seconds`结尾,如`onlineseconds`,`todayonlineseconds`等 7. 表主键必须为`id`,主索引 8. 表名和字段名统一使用英文名称,不允许出现中英混搭的情况出现 9. 日志表统一为模块名加上`_log`进行命名 10. 字段内容为`json`数据时,以`data`进行结尾,比如`itemdata`,`rewarddata` 11. 当字段为某操作数量时,以`nums`结尾,比如`buynums`,`salenums` 12. 当一表出现两个或两个以上会员ID时,`user_id`表示自己,`receiver_user_id`表示他人,多人时使用`receiver_user_ids`,以半角逗号进行分隔(非JSON) 13. 当出现可数名词字段时,一定要加上字符`s`,如`comments`,`views`等 ## 数据表名规范 插件数据表名必须以`插件标识`开始,例如: ~~~ fa_mydemo_log fa_mydemo_item fa_mydemo_comment ~~~ 其中`mydemo`为你的插件标识,`fa_`为数据表前缀。 ## 特殊字段 建议开发者在设计数据库时保留以下字段的设计名称,这样我们能更好的统一不同插件之间的命名规范。 | 字段 | 字段名称 | 字段类型 | 字段说明 | | --- | --- | --- | --- | | category\_id | 分类ID | int | 关联fa\_category表,后台CRUD时会自动生成selectpage组件 | | user\_id | 会员ID | int | 关联fa\_user表,后台CRUD时会自动生成selectpage组件 | | weigh | 权重 | int | 后台的排序字段,如果存在该字段将出现排序按钮,可上下拖动进行排序 | | createtime | 创建时间 | int | 记录添加时间字段,不需要手动维护 | | updatetime | 更新时间 | int | 记录更新时间的字段,不需要手动维护 | | deletetime | 删除时间 | int | 记录删除时间的字段,不需要手动维护,如果存在此字段将会生成回收站功能,字段默认值务必为null | | status | 状态字段 | enum | 状态标识,如果存在此字段将启用TAB选项卡展示列表 |