SQLBot 系统数据库字段

基于您提供的 Navic.txt 文件(这是一个 PostgreSQL 数据库的导出脚本,属于 SQLBot / DataEase 系统库 `sqlbot),我为您整理了一份详细的数据库表结构文档

这份文档将表按功能模块进行了分类,并详细列出了关键字段及其含义。

⚠️ 重要提示

  1. 该数据库类型为 PostgreSQL (版本 14),并非 MySQL。虽然语法相似,但部分数据类型(如 int8, text, jsonb, vector)是 PG 特有的。
  2. 系统中使用了 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: 视图信息

🔍 关键设计特点总结

  1. 向量数据库集成

    • 定义了 vector 类型。
    • data_training, terminology, core_table, core_datasource 中都有 embedding 字段。
    • 用途:实现 RAG 架构。当用户提问时,系统先将问题向量化,然后在这些表中检索最相关的表结构、术语或历史问答对,拼接到 Prompt 中发给大模型,从而大幅提高 SQL 生成的准确率。
  2. 双注释机制

    • core_tablecore_field 中,同时存在 xxx_comment (原始数据库注释) 和 custom_comment (人工自定义注释)。
    • 用途 :允许业务人员修正数据库中原有的晦涩注释,让大模型更容易理解业务含义(例如将 col_01 标记为 用户手机号)。
  3. 行级权限控制

    • ds_permission 表中的 expression_tree 字段。
    • 用途 :在生成 SQL 时,系统会自动将该表达式拼接到 WHERE 条件中,确保不同用户只能查到自己有权限的数据行。
  4. 完整的审计链路

    • chat (会话) -> chat_record (问答明细) -> chat_log (模型调用细节/Token消耗)。
    • 用途:不仅可以追溯用户问了什么,还能分析是哪个模型、消耗了多少 Token、推理过程是什么,便于成本核算和效果优化。
相关推荐
我真会写代码2 小时前
Redis高频面试题(含标准答案,覆盖基础+进阶+实战)
数据库·redis·缓存
2301_793804692 小时前
用Python和Twilio构建短信通知系统
jvm·数据库·python
小李来了!2 小时前
数据库DDL、DML、DQL、DCL详解
数据库·mysql
6+h2 小时前
【Redis】缓存问题及解决方案
数据库·redis·缓存
always_TT2 小时前
字符串输入:gets vs fgets(安全问题)
数据库·安全
我科绝伦(Huanhuan Zhou)2 小时前
【生产案例】MySQL InnoDB 数据损坏崩溃修复
数据库·mysql·adb
猹叉叉(学习版)2 小时前
【系统分析师_知识点整理】 3.数据库系统
数据库·笔记·软考·系统分析师
6+h3 小时前
【Redis】高可用核心讲解
数据库·redis·缓存