数据库说明
当前后端主要数据表与字段说明
数据库说明
本文档只记录后端当前已经使用的主要数据表。
数据库
后端使用 GORM 管理数据库连接和表结构迁移。
支持的存储驱动:
sqlitemysqlpostgresql
当前启动时执行 AutoMigrate,自动维护以下表:
userscredit_logspromptsassetssettings
后续新增表时再同步补充本文档,未实际使用的规划表不提前写入。
users
系统用户表。用户基础信息、角色、算力点余额和第三方登录标识放在该表中。
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 主键 |
username | string | 用户名,唯一索引 |
password | string | 密码哈希 |
email | string | 邮箱 |
display_name | string | 昵称 |
avatar_url | string | 头像地址 |
role | string | 角色:user、admin |
credits | number | 算力点余额 |
aff_code | string | 用户自己的邀请码,唯一索引 |
aff_count | number | 已邀请用户数量,冗余统计字段 |
inviter_id | string | 邀请人用户 ID |
github_id | string | GitHub 用户 ID |
linux_do_id | string | Linux.do 用户 ID |
wechat_id | string | 微信用户 ID |
status | string | 用户状态:active、ban |
last_login_at | string | 最近登录时间 |
extra | json | 扩展信息,第三方资料按平台命名空间保存,如 linuxDo |
created_at | string | 创建时间 |
updated_at | string | 更新时间 |
prompts
提示词表。用于保存公开提示词、内置 GitHub 系统提示词、分类和预览内容。
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 主键 |
title | string | 标题 |
cover_url | string | 封面图 |
prompt | string | 提示词内容 |
tags | json | 标签列表 |
category | string | 分类标识 |
preview | text | Markdown 展示内容,可包含文本、图片、视频链接等 |
created_at | string | 创建时间 |
updated_at | string | 更新时间 |
github_url 仅用于接口返回,不写入数据库。
assets
素材表。当前用于后台素材库。
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 主键 |
title | string | 标题 |
type | string | 素材类型:text、image、video 等 |
cover_url | string | 封面图 |
tags | json | 标签列表 |
category | string | 分类标识 |
description | string | 描述 |
content | text | 文本或 Markdown 内容 |
url | string | 图片、视频等媒体地址 |
created_at | string | 创建时间 |
updated_at | string | 更新时间 |
settings
系统配置表,只保存两行数据:public 放前端可读取的公开配置,private 放仅后端和管理员可读取的私有配置,配置值都用 JSON。
| 字段 | 类型 | 说明 |
|---|---|---|
key | string | 主键:public、private |
value | json | 配置内容 |
created_at | string | 创建时间 |
updated_at | string | 更新时间 |
public.value 常放前端展示和可公开读取的配置,例如模型列表、登录开关等。
private.value 常放渠道密钥、登录密钥、后台内部开关等。
当前系统设置接口会按后端结构体序列化和反序列化已知字段;数据库 JSON 中额外存在的旧字段会被忽略。
public.value 当前字段:
| 字段 | 类型 | 说明 |
|---|---|---|
modelChannel | object | 模型渠道公开配置组 |
auth | object | 公开登录配置 |
modelChannel 当前字段:
| 字段 | 类型 | 说明 |
|---|---|---|
availableModels | string[] | 系统可用模型列表 |
modelCosts | object[] | 模型算力点配置 |
defaultModel | string | 默认模型 |
defaultImageModel | string | 默认图片模型 |
defaultVideoModel | string | 默认视频模型 |
defaultTextModel | string | 默认文本模型 |
systemPrompt | string | 系统提示词 |
allowCustomChannel | bool | 是否允许用户自定义渠道,默认允许,关闭后前端只提供走后端渠道的模式 |
modelCosts 每项字段:
| 字段 | 类型 | 说明 |
|---|---|---|
model | string | 模型名称 |
credits | number | 每次后端模型接口调用前预扣的算力点,未配置默认不扣除 |
auth.linuxDo 当前字段:
| 字段 | 类型 | 说明 |
|---|---|---|
enabled | bool | 是否开启 Linux.do 登录 |
private.value 当前字段:
| 字段 | 类型 | 说明 |
|---|---|---|
channels | object[] | 模型渠道配置列表 |
promptSync | object | GitHub 远程提示词定时同步配置 |
auth | object | 私有登录配置 |
channels 每项字段:
| 字段 | 类型 | 说明 |
|---|---|---|
protocol | string | 协议,当前支持 openai |
name | string | 渠道名称 |
baseUrl | string | 渠道接口地址 |
apiKey | string | 渠道密钥 |
models | string[] | 渠道可用模型列表 |
weight | number | 渠道权重,同一模型命中多个渠道时按权重随机 |
enabled | bool | 是否启用 |
remark | string | 备注 |
promptSync 字段:
| 字段 | 类型 | 说明 |
|---|---|---|
enabled | bool | 是否开启定时同步,默认开启 |
cron | string | Cron 表达式,默认每 5 分钟 |
auth.linuxDo 当前字段:
| 字段 | 类型 | 说明 |
|---|---|---|
clientId | string | Linux.do OAuth App Client ID |
clientSecret | string | Linux.do OAuth App Client Secret,后台返回时隐藏 |
后端请求模型时,先按模型名筛选启用且包含该模型的渠道,再按 weight 加权随机选择一个渠道。
credit_logs
用户算力点变更流水表。当前记录后台手动调整、模型调用预扣和模型调用失败返还。
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 主键 |
user_id | string | 关联用户 ID |
type | string | 类型:admin_adjust、ai_consume、ai_refund |
amount | number | 本次变动数量,增加为正,扣减为负 |
balance | number | 变动后的用户算力点余额 |
related_id | string | 关联业务 ID,可为空 |
remark | string | 备注 |
extra | json | 扩展信息 |
created_at | string | 创建时间 |
type 当前取值:
| 值 | 说明 |
|---|---|
admin_adjust | 后台手动调整 |
ai_consume | 调用后端模型接口消费 |
ai_refund | 后端模型接口调用失败返还 |