跳转至

数据库架构 (Database Schema)

核心表

Cin7_PO_Headers

主采购订单头信息表。包含来自 Cin7 的列和应用程序拥有的列。

Cin7 同步列 (由每晚 Airflow 任务同步更新):

列名 类型 描述
po_id NVARCHAR 来自 Cin7 的主键
po_ref NVARCHAR PO 引用编号 (例如, PO-1525)
billing_company NVARCHAR 供应商公司名称
xfd NVARCHAR 原始离厂日期
factory NVARCHAR 工厂名称
payment_terms NVARCHAR 付款条件
po_date NVARCHAR PO 创建日期

应用自有列 (由本应用程序管理,Airflow 同步时会排除在 MERGE 之外):

列名 类型 描述
app_po_status_id INT 指向 Ref_PO_Status 的外键 (默认: 100)
vendor_reply_xfd DATE 供应商建议的离厂日期
vendor_reply_factory NVARCHAR(200) 供应商建议的工厂
vendor_reply_comment NVARCHAR(MAX) 供应商备注
has_pending_changes BIT 供应商是否有未保存的修改
vendor_confirmed_at DATETIME2 供应商上次确认/提交的时间
manager_action_at DATETIME2 经理上次执行操作的时间
manager_rejection_reason NVARCHAR(MAX) 拒绝理由
is_fit_sample_approved BIT FIT 样品状态
is_cfm_sample_approved BIT CFM 样品状态
container_number NVARCHAR(100) 集装箱号
tracking_number NVARCHAR(200) 跟踪单号
last_modified_by NVARCHAR(200) 最后修改用户
last_modified_at DATETIMEOFFSET 应用程序内最后修改的时间戳
is_locked BIT 订单是否在大状态 >= 200 时锁定以防止修改 (默认: 0)
writeback_synced_at DATETIME2 预留给未来 Cin7 API 写回同步使用

Cin7_PO_Lines

订单项详情表。

列名 类型 描述
po_id NVARCHAR 指向 headers 表的外键
code NVARCHAR 产品 SKU
style NVARCHAR 款号
option1 NVARCHAR 颜色
size NVARCHAR 尺码 (例如, 6M, 7M, 8M)
qty NVARCHAR 原始数量 (来自 Cin7)
unit_price NVARCHAR 原始单价 (来自 Cin7)
vendor_reply_qty INT 供应商建议的数量
vendor_reply_unit_price DECIMAL(18,4) 供应商建议的单价
is_modified BIT 该行是否已被供应商修改
row_hash NVARCHAR(64) 用于 API 更新的唯一哈希值

引用表 (Reference Tables)

App_Notifications (通知表)

跟踪与 PO 历史记录绑定的系统通知的用户已读回执。

列名 类型 描述
Notification_ID INT (主键, 自增) 主键
User_Email NVARCHAR(255) 接收通知的用户的电子邮件
History_ID INT (外键) 指向 Log_PO_History 的外键
Is_Read BIT 用户是否已读通知 (默认: 0)
Created_At DATETIME2 通知创建的时间戳

Ref_PO_Status (状态定义表)

列名 类型
Status_ID INT (主键)
Status_Name NVARCHAR(50)
Status_Label_EN NVARCHAR(100)
Status_Label_ZH NVARCHAR(100)
Sort_Order INT
Is_Terminal BIT
Color_Hex NVARCHAR(7)
Is_Active BIT

Ref_PO_Transitions (转换定义表)

列名 类型
Transition_ID INT (主键)
From_Status_ID INT (外键)
To_Status_ID INT (外键)
Action_Name NVARCHAR(50)
Allowed_Roles NVARCHAR(200)
Label_EN NVARCHAR(100)
Label_ZH NVARCHAR(100)
Gatekeeper_Check NVARCHAR(100)
Sort_Order INT
Is_Active BIT

Log_PO_History (历史日志表)

列名 类型
Log_ID INT (主键, 自增)
PO_Ref NVARCHAR(50)
Old_Status_ID INT
New_Status_ID INT
Action_Name NVARCHAR(50)
Changed_By NVARCHAR(200)
Changed_At DATETIME2
Comment NVARCHAR(MAX)

Ref_Vendors (供应商参考表)

供应商和工厂的参考数据。

列名 类型 描述
Vendor_ID INT (PK) 唯一内部 ID
Vendor_Code NVARCHAR(50) 短代码 (如 E1, F2)
Vendor_Name NVARCHAR(200) 完整交易名称
Contact_Name NVARCHAR(200) 主要联系人
Contact_Email NVARCHAR(200) 联系电子邮件 (部分日志中已脱敏)
Is_Active BIT 激活状态

CloudMind 配置与聊天

Config_Registry (配置注册表)

存储 CloudMind 语义层的源配置。

列名 类型 描述
Source_ID INT (PK, Identity) 主键
Source_Name NVARCHAR(100) 配置名称 (如 cin7_po_headers)
Source_Type NVARCHAR(50) 类型 (table, view)
Config_YAML NVARCHAR(MAX) 完整的 YAML 配置内容
Is_Active BIT 系統是否使用此配置
Status NVARCHAR(20) 生命周期状态 (draft, approved, deprecated)

Chat_Interactions (聊天交互日志)

记录用户与 AI 数据助手的所有交互。

列名 类型 描述
id INT (PK, Identity) 主键
user_email NVARCHAR(255) 用户电子邮件
user_role NVARCHAR(50) 查询时的角色
vendor_code NVARCHAR(50) 供应商代码 (如果是供应商角色)
user_message NVARCHAR(MAX) 用户查询内容 (已脱敏)
ai_reply NVARCHAR(MAX) AI 响应内容 (已脱敏)
message_language NVARCHAR(10) 检测到的语言 (en, zh)
tools_called NVARCHAR(MAX) 调用的工具名称 JSON 数组
tool_params NVARCHAR(MAX) 第一个工具的参数 JSON 对象
query_row_counts NVARCHAR(MAX) 每个工具返回结果数量的 JSON 映射
response_type NVARCHAR(20) UI 渲染类型 (text, chart, table)
chart_type NVARCHAR(20) 图表类型 (bar, line, donut)
guardrail_passed BIT 输出验证是否通过
hallucination_detected BIT 是否怀疑存在幻觉
pii_detected BIT 是否检测到并屏蔽了 PII
duration_ms INT 总响应时间 (毫秒)
openai_tokens_used INT 交互的 Token 使用量
auto_score INT 自动质量评分 (-3 到 8)
needs_improvement BIT 需人工复核标志
is_good_example BIT Few-shot 学习池标志
created_at DATETIME2 交互时间戳

实体关系图 (ERD)

erDiagram
    Cin7_PO_Headers ||--o{ Cin7_PO_Lines : "包含行项目"
    Cin7_PO_Headers }o--|| Ref_PO_Status : "拥有状态"
    Cin7_PO_Headers }o--|| Ref_Vendors : "属于供应商"
    Cin7_PO_Headers ||--o{ Log_PO_History : "拥有历史记录"
    Ref_PO_Transitions }o--|| Ref_PO_Status : "起始状态"
    Ref_PO_Transitions }o--|| Ref_PO_Status : "目标状态"
    Log_PO_History ||--o{ App_Notifications : "触发通知"
    Chat_Interactions }o--o{ Config_Registry : "通过以下方式查询"