基于您提供的 Navic.txt 文件(这是一个 PostgreSQL 数据库的导出脚本,属于 SQLBot / DataEase 系统库 `sqlbot),我为您整理了一份详细的数据库表结构文档。
这份文档将表按功能模块进行了分类,并详细列出了关键字段及其含义。
⚠️ 重要提示:
- 该数据库类型为 PostgreSQL (版本 14),并非 MySQL。虽然语法相似,但部分数据类型(如
int8,text,jsonb,vector)是 PG 特有的。- 系统中使用了
vector类型和相关的向量距离函数,说明该系统深度集成了 RAG (检索增强生成) 能力,用于语义搜索。
📊 SQLBot 系统数据库字典 (v1.0)
1. 核心元数据模块 (Core Metadata)
用于管理连接的数据源、同步的表结构及字段信息,是 Text-to-SQL 的基础。
1.1 数据源配置 (core_datasource)
存储用户连接的各类数据库连接信息。
| 字段名 | 类型 | 含义/备注 |
|---|---|---|
id |
int8 | 主键 |
name |
varchar | 数据源名称 |
type |
varchar | 数据库类型 (MySQL, PG, Oracle等) |
configuration |
text | 加密后的连接配置信息 (JSON格式) |
status |
varchar | 连接状态 |
table_relation |
jsonb | 表之间的关联关系定义 |
embedding |
text | 数据源级别的向量化描述 (用于语义检索) |
recommended_config |
int8 | 推荐问题配置ID |
1.2 表元数据 (core_table)
存储从数据源同步过来的物理表信息。
| 字段名 | 类型 | 含义/备注 |
|---|---|---|
id |
int8 | 主键 |
ds_id |
int8 | 关联数据源ID (core_datasource.id) |
checked |
bool | 是否被选中纳入知识库 |
table_name |
text | 物理表名 |
table_comment |
text | 原始表注释 |
custom_comment |
text | 人工修正/补充的业务注释 (关键,提升SQL生成准确率) |
embedding |
text | 表描述的向量值 |
count |
int8 | 表行数统计 |
1.3 字段元数据 (core_field)
存储表中的具体字段信息。
| 字段名 | 类型 | 含义/备注 |
|---|---|---|
id |
int8 | 主键 |
ds_id |
int8 | 关联数据源ID |
table_id |
int8 | 关联表ID (core_table.id) |
checked |
bool | 是否启用该字段 |
field_name |
text | 物理字段名 |
field_type |
varchar | 字段类型 (varchar, int, date等) |
field_comment |
text | 原始字段注释 |
custom_comment |
text | 人工修正/补充的业务含义 (关键) |
field_index |
int8 | 字段顺序 |
1.4 表行统计 (table_row_stat)
记录表的行数和数据大小统计历史。
| 字段名 | 类型 | 含义/备注 |
|---|---|---|
datasource_id |
int8 | 数据源ID |
table_name |
varchar | 表名 |
row_count |
int8 | 行数 |
table_size_kb |
int8 | 表大小 (KB) |
stat_time |
timestamp | 统计时间 |
2. 会话与问答历史模块 (Chat & History)
记录用户与机器人的交互过程、生成的 SQL 及执行结果。
2.1 会话主表 (chat)
代表一次完整的对话会话(Session)。
| 字段名 | 类型 | 含义/备注 |
|---|---|---|
id |
int8 | 主键 |
brief |
varchar | 会话标题/摘要 |
chat_type |
varchar | 会话类型 |
datasource |
int8 | 关联数据源ID |
engine_type |
varchar | 使用的引擎类型 |
recommended_question |
text | 推荐的后续问题列表 |
create_by |
int8 | 创建人ID |
2.2 问答记录明细 (chat_record)
会话中的每一轮具体问答记录。
| 字段名 | 类型 | 含义/备注 |
|---|---|---|
id |
int8 | 主键 |
chat_id |
int8 | 关联会话ID |
question |
text | 用户提问的自然语言 |
sql |
text | 模型生成的 SQL 语句 |
sql_answer |
text | SQL 执行后的文本结论 |
data |
text | SQL 执行后的原始数据 (JSON) |
chart |
text | 生成的图表配置 |
error |
text | 执行报错信息 (如有) |
analysis |
text | 模型生成的分析解读 |
finish |
bool | 是否执行完成 |
create_time |
timestamp | 创建时间 |
2.3 模型调用日志 (chat_log)
记录底层大模型调用的详细开销和过程。
| 字段名 | 类型 | 含义/备注 |
|---|---|---|
id |
int8 | 主键 |
pid |
int8 | 关联的记录ID |
ai_modal_id |
int8 | 使用的模型ID |
messages |
jsonb | 发送给模型的完整 Prompt 消息链 |
reasoning_content |
text | 模型的推理过程内容 (Thinking process) |
token_usage |
jsonb | Token 消耗详情 (input/output) |
start_time |
timestamp | 开始时间 |
finish_time |
timestamp | 结束时间 |
error |
bool | 是否出错 |
3. AI 模型与提示词模块 (AI & Prompts)
管理接入的大模型配置及自定义提示词。
3.1 AI 模型配置 (ai_model)
| 字段名 | 类型 | 含义/备注 |
|---|---|---|
id |
int8 | 主键 |
name |
varchar | 模型展示名称 |
supplier |
int4 | 供应商类型 (阿里/百度/开源等) |
api_key |
text | 加密的 API Key |
api_domain |
text | API 请求域名 |
base_model |
varchar | 基础模型标识 (如 qwen-max) |
config |
text | 额外配置参数 (JSON) |
default_model |
bool | 是否为默认模型 |
3.2 自定义提示词 (custom_prompt)
用户自定义的系统提示词模板。
| 字段名 | 类型 | 含义/备注 |
|---|---|---|
id |
int8 | 主键 |
name |
varchar | 提示词名称 |
prompt |
text | 提示词具体内容 |
type |
varchar | 适用场景类型 |
specific_ds |
bool | 是否限定特定数据源 |
datasource_ids |
jsonb | 限定的数据源ID列表 |
3.3 术语库 (terminology & terms)
用于增强模型对业务专有名词的理解。
terminology: 高级术语表,支持向量检索 (embedding字段),可绑定特定数据源。word: 术语名称description: 术语解释enabled: 是否启用
terms: 基础术语表。term: 术语definition: 定义domain: 所属领域
3.4 训练数据/示例库 (data_training)
存储 Few-Shot (少样本学习) 的问答对,用于微调或上下文增强。
| 字段名 | 类型 | 含义/备注 |
|---|---|---|
question |
varchar | 示例问题 |
description |
text | 示例描述/答案逻辑 |
embedding |
vector | 问题的向量表示 (用于语义相似度匹配) |
datasource |
int8 | 关联数据源 |
enabled |
bool | 是否启用 |
4. 权限与安全模块 (Security & Permission)
细粒度的数据权限控制和系统安全配置。
4.1 数据源权限 (ds_permission)
定义谁可以访问哪些表或行。
| 字段名 | 类型 | 含义/备注 |
|---|---|---|
auth_target_type |
varchar | 授权对象类型 (用户/角色) |
auth_target_id |
int8 | 授权对象ID |
ds_id / table_id |
int8 | 限制的数据源或表 |
expression_tree |
text | 行级权限过滤表达式 (如 dept_id = 101) |
white_list_user |
text | 白名单用户 |
4.2 规则管理 (ds_rules)
更宏观的访问控制规则。
| 字段名 | 类型 | 含义/备注 |
|---|---|---|
name |
varchar | 规则名称 |
permission_list |
text | 权限列表 |
user_list |
text | 适用用户列表 |
4.3 系统与用户 (sys_* 系列表)
sys_user: 系统用户 (账号, 密码, 邮箱, 状态)。sys_workspace: 工作空间 (多租户隔离)。sys_user_ws: 用户与工作空间的关联关系。sys_authentication: 第三方认证配置 (LDAP, OIDC等)。sys_apikey: API 访问密钥管理。rsa: 存储 RSA 公私钥,用于加密敏感配置(如数据库密码)。license: 软件许可证信息。
5. 系统运维与日志 (System & Logs)
5.1 操作日志 (sys_logs)
记录所有用户的关键操作行为。
| 字段名 | 类型 | 含义/备注 |
|---|---|---|
operation_type |
varchar | 操作类型 |
user_name |
varchar | 操作人 |
ip_address |
varchar | 来源IP |
execution_time |
int8 | 耗时 (ms) |
error_message |
text | 错误信息 |
request_path |
varchar | 请求接口路径 |
5.2 仪表盘 (core_dashboard)
存储可视化的报表和大屏配置信息。
canvas_style_data: 画布样式component_data: 组件数据配置canvas_view_info: 视图信息
🔍 关键设计特点总结
-
向量数据库集成:
- 定义了
vector类型。 - 在
data_training,terminology,core_table,core_datasource中都有embedding字段。 - 用途:实现 RAG 架构。当用户提问时,系统先将问题向量化,然后在这些表中检索最相关的表结构、术语或历史问答对,拼接到 Prompt 中发给大模型,从而大幅提高 SQL 生成的准确率。
- 定义了
-
双注释机制:
- 在
core_table和core_field中,同时存在xxx_comment(原始数据库注释) 和custom_comment(人工自定义注释)。 - 用途 :允许业务人员修正数据库中原有的晦涩注释,让大模型更容易理解业务含义(例如将
col_01标记为用户手机号)。
- 在
-
行级权限控制:
ds_permission表中的expression_tree字段。- 用途 :在生成 SQL 时,系统会自动将该表达式拼接到
WHERE条件中,确保不同用户只能查到自己有权限的数据行。
-
完整的审计链路:
- 从
chat(会话) ->chat_record(问答明细) ->chat_log(模型调用细节/Token消耗)。 - 用途:不仅可以追溯用户问了什么,还能分析是哪个模型、消耗了多少 Token、推理过程是什么,便于成本核算和效果优化。
- 从