ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 数据库 很多时候我们的YznCMS插件都需要使用到数据库,此章节为你解答如何在YznCMS插件中使用数据库功能。 ## 设计规范 我们在设计插件数据库时建议统一设计规范,因为更好的设计规范能更好的让我们的用户更快速的掌握我们开发者的设计思想。 1. 表名和字段名全小写,只允许出现`a-z`和`_`这几种字符,且不能有拼音,只能为英文单词 2. 字符集统一使用`utf8mb4`,排序规则使用`utf8mb4_general_ci` 3. 关联字段统一使用`_id`结尾,如`user_id`、`task_id`(任务表名为task),`item_id`(物品表名为item), 当为`father_id`、`parent_id`、`pid`、`prev_id`等字段时表示和当前表主键进行关联,当为`task_ids`、`user_ids`时表示一个集合,以半角逗号进行分隔(非JSON) 4. 时间统一使用`Unix时间戳`格式, 秒级, 长整型, 长度16,且必须以`time`结尾, 如`create_time`、`update_time`,`pay_time`、`expire_time`等 5. 时长统一使用秒格式, 整型, 长度10,且必须以`seconds`结尾,如`onlineseconds`、`todayonlineseconds`等 6. 表主键必须为`id`,主索引 7. 表名和字段名统一使用英文名称,不允许出现中英混搭的情况出现 8. 日志表统一为模块名加上`_log`进行命名 9. 字段内容为`json`数据时,以`data`进行结尾,比如`itemdata`、`rewarddata` 10. 当字段为某操作数量时,以`nums`结尾,比如`buynums`、`salenums` 11. 当一表出现两个或两个以上会员ID时,`user_id`表示自己,`receiver_user_id`表示他人,多人时使用`receiver_user_ids`,以半角逗号进行分隔(非JSON) 12. 当出现可数名词字段时,一定要加上字符`s`,如`comments`、`views`等 13. 数据表添加的索引对应的字段长度不建议超过100 ## 配置文件 在插件目录`addons/mydemo`目录添加一个`install.sql`,然后将安装脚本的SQL存放在此文件中。 ## 数据表名规范 插件数据表名必须以`插件标识`开始,例如: ~~~markdown __PREFIX__mydemo __PREFIX__mydemo_log __PREFIX__mydemo_comment ~~~ 其中`mydemo`为你的插件标识,`__PREFIX__`为数据表前缀。 ## 测试数据 每个插件可自带一个`testdata.sql`,用于安装插件成功后导入测试数据,具体文档请参考`测试数据`章节。