445 lines
28 KiB
SQL
445 lines
28 KiB
SQL
-- =====================================================================
|
||
-- 智能公募基金系统 · MySQL 建表脚本(24 张,见开发计划 §3.1)
|
||
-- 执行:mysql -u<user> -p <database> < sql/schema.sql
|
||
-- 约定:InnoDB / utf8mb4;采用"逻辑外键"(不建物理 FK,便于 Mock 数据灌入),
|
||
-- 注释即文档,NL2SQL 以 COMMENT 注入 Schema。
|
||
-- =====================================================================
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 01 统一用户表(客户 + 员工共用)
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS sys_user (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
username VARCHAR(64) NOT NULL COMMENT '登录账号,唯一',
|
||
password_hash VARCHAR(255) NOT NULL COMMENT 'bcrypt 哈希,不存明文',
|
||
salt VARCHAR(32) NULL COMMENT '口令盐',
|
||
real_name VARCHAR(32) NULL COMMENT '真实姓名',
|
||
phone VARCHAR(20) NOT NULL COMMENT '手机号(脱敏展示用)',
|
||
user_type VARCHAR(16) NOT NULL DEFAULT 'CUSTOMER' COMMENT 'CUSTOMER=客户 / EMPLOYEE=员工',
|
||
employee_role VARCHAR(32) NULL COMMENT '员工角色:理财顾问/风控专员/客户经理/管理员',
|
||
customer_level VARCHAR(16) NULL COMMENT '客户等级:普通/金卡/白金/钻石/私行',
|
||
status VARCHAR(16) NOT NULL DEFAULT '正常' COMMENT '账号状态:正常/禁用/冻结',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
UNIQUE KEY uk_username (username),
|
||
KEY idx_phone (phone),
|
||
KEY idx_user_type (user_type)
|
||
) COMMENT='统一用户表(客户与员工共用账号体系)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 02 客户画像主表
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS fin_customer_profile (
|
||
customer_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID,一对一关联 sys_user.id',
|
||
risk_level VARCHAR(16) NULL COMMENT '风险等级:保守/稳健/平衡/进取/激进',
|
||
risk_score INT NULL COMMENT '风险评分 0-100,越高越激进',
|
||
investment_experience VARCHAR(16) NULL COMMENT '投资经验:0-1/1-3/3-5/5-10/10年以上',
|
||
annual_income_range VARCHAR(32) NULL COMMENT '年收入区间',
|
||
total_assets DECIMAL(18,2) NULL COMMENT '总资产(元)',
|
||
asset_allocation JSON NULL COMMENT '资产配置偏好 {股票:30,债券:40,...}',
|
||
product_preference JSON NULL COMMENT '产品偏好 {基金:[混合型,债券型]}',
|
||
customer_level VARCHAR(16) NULL COMMENT '客户等级(运营可调整)',
|
||
confidence_score DECIMAL(5,2) NOT NULL DEFAULT 0.50 COMMENT '画像置信度 0-1,用于推荐权重',
|
||
profile_version INT NOT NULL DEFAULT 1 COMMENT '画像版本号(重建时递增)',
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (customer_id),
|
||
KEY idx_risk_level (risk_level),
|
||
KEY idx_total_assets (total_assets)
|
||
) COMMENT='客户画像主表(RAG/GraphRAG 个性化推荐核心上下文)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 03 公募基金产品表
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS fin_product (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
product_code VARCHAR(32) NOT NULL COMMENT '基金代码,唯一,如 F000001',
|
||
product_name VARCHAR(128) NOT NULL COMMENT '基金名称',
|
||
product_type VARCHAR(32) NOT NULL COMMENT '类型:货币/债券/混合/股票基金',
|
||
risk_level VARCHAR(8) NOT NULL COMMENT '风险等级 R1-R5',
|
||
expected_return DECIMAL(7,4) NULL COMMENT '预期年化收益率(%)',
|
||
nav DECIMAL(12,6) NULL COMMENT '最新单位净值',
|
||
nav_date DATE NULL COMMENT '净值日期',
|
||
fee_rate DECIMAL(6,4) NOT NULL DEFAULT 0.0000 COMMENT '申购费率(%)',
|
||
term_days INT NOT NULL DEFAULT 0 COMMENT '产品期限天数,0=活期(开放申赎)',
|
||
fund_manager VARCHAR(64) NULL COMMENT '基金经理',
|
||
status VARCHAR(16) NOT NULL DEFAULT '在售' COMMENT '在售/暂停/到期/清盘',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
UNIQUE KEY uk_product_code (product_code),
|
||
KEY idx_type_status (product_type, status),
|
||
KEY idx_risk (risk_level)
|
||
) COMMENT='公募基金产品表';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 04 基金净值历史
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS fund_nav_history (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
product_id BIGINT UNSIGNED NOT NULL COMMENT '产品ID',
|
||
nav_date DATE NOT NULL COMMENT '净值日期',
|
||
unit_nav DECIMAL(12,6) NOT NULL COMMENT '单位净值',
|
||
accumulated_nav DECIMAL(12,6) NULL COMMENT '累计净值',
|
||
daily_growth DECIMAL(8,4) NULL COMMENT '日增长率(%)',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
UNIQUE KEY uk_product_date (product_id, nav_date)
|
||
) COMMENT='基金净值历史(业绩指标/走势图数据源)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 05 交易申请单(申购/赎回主表:风控挂起→处置→回写的状态机载体)
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS trade_order (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
order_no VARCHAR(32) NOT NULL COMMENT '申请单号,全局唯一',
|
||
customer_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID',
|
||
product_id BIGINT UNSIGNED NOT NULL COMMENT '产品ID',
|
||
advisor_id BIGINT UNSIGNED NULL COMMENT '经办投顾(代下/调仓)',
|
||
order_type VARCHAR(16) NOT NULL COMMENT '申购/赎回',
|
||
amount DECIMAL(18,2) NULL COMMENT '申请金额(元)',
|
||
shares DECIMAL(18,4) NULL COMMENT '申请/成交份额',
|
||
nav DECIMAL(12,6) NULL COMMENT '确认净值(确认时回填)',
|
||
fee DECIMAL(12,2) NULL COMMENT '手续费(确认时回填)',
|
||
status VARCHAR(16) NOT NULL DEFAULT '待确认' COMMENT '待确认/风控挂起/已确认/已撤单/失败',
|
||
risk_alert_id BIGINT UNSIGNED NULL COMMENT '命中风控预警ID(挂起时关联)',
|
||
cancel_reason VARCHAR(255) NULL COMMENT '撤单/失败原因',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
confirm_time DATETIME NULL COMMENT '确认时间',
|
||
KEY idx_customer (customer_id, status),
|
||
KEY idx_status (status),
|
||
UNIQUE KEY uk_order_no (order_no)
|
||
) COMMENT='交易申请单(风控阻断闭环主表,状态机单一来源)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 06 成交流水
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS fin_transaction (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
transaction_no VARCHAR(32) NOT NULL COMMENT '流水号,全局唯一',
|
||
order_id BIGINT UNSIGNED NULL COMMENT '关联申请单 ID',
|
||
customer_id BIGINT UNSIGNED NOT NULL,
|
||
product_id BIGINT UNSIGNED NOT NULL,
|
||
operator_id BIGINT UNSIGNED NULL COMMENT '经办理财顾问',
|
||
transaction_type VARCHAR(16) NOT NULL COMMENT '申购/赎回/分红/定投',
|
||
amount DECIMAL(18,2) NOT NULL COMMENT '交易金额(元)',
|
||
shares DECIMAL(18,4) NULL COMMENT '成交份额',
|
||
nav DECIMAL(12,6) NULL COMMENT '成交净值',
|
||
fee DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '手续费(元)',
|
||
status VARCHAR(16) NOT NULL DEFAULT '已确认' COMMENT '待确认/已确认/已撤单/失败',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
UNIQUE KEY uk_transaction_no (transaction_no),
|
||
KEY idx_customer_time (customer_id, create_time),
|
||
KEY idx_product (product_id)
|
||
) COMMENT='成交流水表(成交后落库)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 07 持仓表
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS fin_holdings (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
customer_id BIGINT UNSIGNED NOT NULL COMMENT '持仓客户',
|
||
product_id BIGINT UNSIGNED NOT NULL COMMENT '持有产品',
|
||
shares DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '持有份额',
|
||
cost_amount DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '成本金额(元)',
|
||
current_value DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '当前市值(元,持仓重估任务更新)',
|
||
profit_loss DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '盈亏金额(元)',
|
||
profit_ratio DECIMAL(8,4) NOT NULL DEFAULT 0 COMMENT '盈亏比例(%)',
|
||
status VARCHAR(16) NOT NULL DEFAULT '持有中' COMMENT '持有中/已清仓',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
UNIQUE KEY uk_customer_product (customer_id, product_id),
|
||
KEY idx_status (status)
|
||
) COMMENT='持仓表(当前/历史持仓快照)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 08 风险评估记录
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS fin_risk_assessment (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
customer_id BIGINT UNSIGNED NOT NULL COMMENT '被评估客户',
|
||
assessment_date DATE NOT NULL COMMENT '评估日期',
|
||
question_version VARCHAR(16) NULL COMMENT '问卷版本(题目变更后按版本追溯)',
|
||
total_score INT NOT NULL COMMENT '总分 0-100',
|
||
risk_level VARCHAR(16) NOT NULL COMMENT '评定:保守/稳健/平衡/进取/激进',
|
||
answers JSON NULL COMMENT '答题详情 [{q:1,a:B,score:10}]',
|
||
assessor_type VARCHAR(16) NOT NULL DEFAULT 'AI评估' COMMENT 'AI评估/人工评估',
|
||
valid_until DATE NOT NULL COMMENT '有效期至(默认 +1年,监管一年一评)',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
KEY idx_customer_date (customer_id, assessment_date)
|
||
) COMMENT='风险评估记录表(购买前问卷确认客户等级)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 09 问卷模板
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS ops_questionnaire (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
name VARCHAR(64) NOT NULL COMMENT '问卷名称,如 风险测评问卷',
|
||
q_type VARCHAR(16) NOT NULL COMMENT '风险测评/投资者分类',
|
||
version VARCHAR(16) NOT NULL DEFAULT 'v1' COMMENT '版本号',
|
||
status VARCHAR(16) NOT NULL DEFAULT '启用' COMMENT '启用/停用',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||
) COMMENT='问卷模板表';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 10 题目表
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS ops_question (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
questionnaire_id BIGINT UNSIGNED NOT NULL COMMENT '所属问卷',
|
||
question_no INT NOT NULL COMMENT '题号',
|
||
content VARCHAR(512) NOT NULL COMMENT '题干',
|
||
option_json JSON NULL COMMENT '选项配置 [{label:A,text:...}]',
|
||
score_json JSON NULL COMMENT '选项分值 {A:10,B:8,...}',
|
||
sort INT NOT NULL DEFAULT 0,
|
||
UNIQUE KEY uk_q_no (questionnaire_id, question_no)
|
||
) COMMENT='问卷题目表(题目/选项/分值可运营配置)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 11 风控预警表
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS fin_risk_alert (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
customer_id BIGINT UNSIGNED NOT NULL COMMENT '被预警客户',
|
||
order_id BIGINT UNSIGNED NULL COMMENT '关联交易申请单(挂起时必填)',
|
||
alert_type VARCHAR(32) NOT NULL COMMENT '大额交易/频繁交易/快进快出/疑洗钱/适当性异常等',
|
||
alert_level VARCHAR(8) NOT NULL COMMENT '低(蓝)/中(黄)/高(红)',
|
||
trigger_detail TEXT NULL COMMENT '触发详情(命中规则、AI 推理过程)',
|
||
transaction_ids JSON NULL COMMENT '关联交易 ID 列表',
|
||
confidence DECIMAL(5,2) NOT NULL DEFAULT 0.50 COMMENT '预警置信度',
|
||
status VARCHAR(16) NOT NULL DEFAULT '未处理' COMMENT '未处理/处理中/已确认/已排除',
|
||
handler_id BIGINT UNSIGNED NULL COMMENT '处理人(风控专员)',
|
||
handle_result TEXT NULL COMMENT '处置结论留痕',
|
||
handle_time DATETIME NULL,
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
KEY idx_status_level (status, alert_level),
|
||
KEY idx_customer (customer_id),
|
||
KEY idx_order (order_id)
|
||
) COMMENT='风控预警表(阻断后由风控专员在控制台处置)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 12 风控规则表(规则引擎表驱动)
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS risk_rule (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
rule_id VARCHAR(16) NOT NULL COMMENT '规则编号,如 R001',
|
||
rule_name VARCHAR(64) NOT NULL COMMENT '规则名称',
|
||
trigger_condition VARCHAR(512) NULL COMMENT '触发条件描述',
|
||
threshold JSON NULL COMMENT '阈值配置 {amount:50000,...}',
|
||
risk_level VARCHAR(8) NOT NULL DEFAULT '低' COMMENT '低/中/高',
|
||
weight DECIMAL(4,2) NOT NULL DEFAULT 1.00 COMMENT '规则权重(预警分级用)',
|
||
status VARCHAR(8) NOT NULL DEFAULT '启用' COMMENT '启用/停用(运营可调)',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
UNIQUE KEY uk_rule_id (rule_id)
|
||
) COMMENT='风控规则表(20 条反洗钱/异常交易规则,驱动风控Agent)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 13 通用业务工单表
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS biz_work_order (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
work_order_no VARCHAR(32) NOT NULL COMMENT '工单编号,如 WO20260908xxxx',
|
||
order_type VARCHAR(32) NOT NULL COMMENT '产品申购/产品赎回/投顾签约/信息变更/投诉建议/风评重做/可疑交易上报',
|
||
sub_type VARCHAR(32) NULL COMMENT '子类型',
|
||
customer_id BIGINT UNSIGNED NULL COMMENT '关联客户',
|
||
submitter_id BIGINT UNSIGNED NULL COMMENT '提交人(客户或员工代办)',
|
||
handler_id BIGINT UNSIGNED NULL COMMENT '当前处理人(投顾/风控专员)',
|
||
current_node VARCHAR(32) NOT NULL DEFAULT '初审' COMMENT '初审/复核/完成',
|
||
priority VARCHAR(8) NOT NULL DEFAULT '普通' COMMENT '普通/紧急/特急',
|
||
status VARCHAR(16) NOT NULL DEFAULT '待处理' COMMENT '待处理/处理中/待审核/已完成/已驳回',
|
||
biz_content JSON NULL COMMENT '业务内容(按 order_type 结构各异)',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
UNIQUE KEY uk_work_order_no (work_order_no),
|
||
KEY idx_handler_status (handler_id, status),
|
||
KEY idx_customer (customer_id)
|
||
) COMMENT='通用业务工单表(投标顾签约、可疑交易上报等流程载体)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 14 会话归档表
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS conversation_archive (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
session_id VARCHAR(64) NOT NULL COMMENT '会话ID,同轮共用',
|
||
user_id BIGINT UNSIGNED NOT NULL COMMENT '对话用户',
|
||
agent_type VARCHAR(32) NOT NULL COMMENT 'customer/advisor/risk/analyst',
|
||
role VARCHAR(16) NOT NULL COMMENT 'user/assistant/system',
|
||
content MEDIUMTEXT NULL COMMENT '对话内容',
|
||
tool_calls JSON NULL COMMENT '工具调用记录 [{"tool":"nl2sql",...}]',
|
||
trace_id VARCHAR(64) NULL COMMENT '请求链路追踪ID',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
trace_id VARCHAR(64) NULL COMMENT '请求链路追踪ID',
|
||
KEY idx_session (session_id),
|
||
KEY idx_user_time (user_id, create_time),
|
||
KEY idx_agent (agent_type),
|
||
message_id VARCHAR(64) NULL COMMENT '消息唯一ID,用于归档幂等',
|
||
agent_run_id VARCHAR(64) NULL COMMENT 'Agent运行ID,用于调用链路追踪',
|
||
UNIQUE KEY uk_session_message (session_id, message_id),
|
||
KEY idx_agent_run (agent_run_id)
|
||
) COMMENT='会话归档表(审计回溯 + Agent 持续学习素材,归档前脱敏)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 15 知识元数据表(原文存 MySQL,替代 MinIO)
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS fin_knowledge_meta (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
knowledge_type VARCHAR(32) NOT NULL COMMENT '产品说明/政策法规/FAQ/操作指南/市场研报',
|
||
title VARCHAR(255) NOT NULL COMMENT '知识条目标题',
|
||
source_file VARCHAR(255) NULL COMMENT '来源文件名',
|
||
raw_content LONGTEXT NULL COMMENT '文档原文/切片(MinIO 替代方案)',
|
||
file_path VARCHAR(512) NULL COMMENT '本地上传原文件路径(若保留)',
|
||
milvus_collection VARCHAR(128) NULL COMMENT 'Milvus 向量集合名',
|
||
version VARCHAR(32) NOT NULL DEFAULT 'v1',
|
||
status VARCHAR(16) NOT NULL DEFAULT '有效' COMMENT '有效/过期/草稿',
|
||
expire_at DATETIME NULL COMMENT '过期时间(政策 1 年/产品说明半年)',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
KEY idx_type (knowledge_type),
|
||
KEY idx_status (status)
|
||
) COMMENT='金融知识元数据表(RAG 知识库目录 + 正文载体,Milvus source_id 关联本表)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 16 客户-投顾关系表(签约状态驱动客服引导与投顾服务范围)
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS customer_relation (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
customer_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID',
|
||
advisor_id BIGINT UNSIGNED NOT NULL COMMENT '投顾ID',
|
||
assign_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '分配时间(注册自动分配)',
|
||
signed_time DATETIME NULL COMMENT '签约时间',
|
||
end_time DATETIME NULL COMMENT '关系结束时间',
|
||
status VARCHAR(16) NOT NULL DEFAULT '已分配' COMMENT '已分配/已签约/已结束',
|
||
reason VARCHAR(128) NULL COMMENT '结束/变更原因',
|
||
KEY idx_advisor (advisor_id, status),
|
||
KEY idx_customer (customer_id)
|
||
) COMMENT='客户-投顾关系表(状态驱动:签约后投顾Agent方案正式触达客户)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 17 画像变更日志(冲突策略审计)
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS customer_profile_change_log (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
customer_id BIGINT UNSIGNED NOT NULL,
|
||
tag VARCHAR(64) NULL COMMENT '标签名',
|
||
old_value VARCHAR(255) NULL COMMENT '旧值',
|
||
new_value VARCHAR(255) NULL COMMENT '新值',
|
||
source VARCHAR(32) NULL COMMENT '来源:风评问卷/行为推断/AI对话提取/用户自述/人工',
|
||
confidence DECIMAL(5,2) NULL COMMENT '新值置信度',
|
||
reason VARCHAR(255) NULL COMMENT '变更原因(冲突策略/人工修正)',
|
||
operator_id BIGINT UNSIGNED NULL COMMENT '操作人(人工修正时)',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
KEY idx_customer (customer_id)
|
||
) COMMENT='画像变更审计(保留冲突记录与人工修正痕迹)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 18 操作审计日志(企业级:谁在何时做了什么)
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS audit_log (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
user_id BIGINT UNSIGNED NULL COMMENT '操作人',
|
||
username VARCHAR(64) NULL,
|
||
module VARCHAR(32) NOT NULL COMMENT 'auth/product/trade/risk/...',
|
||
action VARCHAR(64) NOT NULL COMMENT '操作动作',
|
||
target VARCHAR(128) NULL COMMENT '操作对象(单号/ID)',
|
||
detail TEXT NULL COMMENT '详情(JSON 字符串)',
|
||
ip VARCHAR(64) NULL,
|
||
trace_id VARCHAR(32) NULL COMMENT '链路号',
|
||
status VARCHAR(8) NOT NULL DEFAULT '成功' COMMENT '成功/失败',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
KEY idx_user (user_id),
|
||
KEY idx_module_time (module, create_time)
|
||
) COMMENT='操作审计日志表(企业级合规留痕)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 19 官网公告
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS sys_announcement (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
title VARCHAR(128) NOT NULL,
|
||
content TEXT NULL,
|
||
status VARCHAR(16) NOT NULL DEFAULT '草稿' COMMENT '草稿/已发布',
|
||
publish_time DATETIME NULL,
|
||
expire_at DATETIME NULL,
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
KEY idx_status (status, publish_time)
|
||
) COMMENT='官网公告表';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 20 站内信/消息中心
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS sys_message (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
user_id BIGINT UNSIGNED NOT NULL COMMENT '收件人',
|
||
msg_type VARCHAR(32) NOT NULL COMMENT '推荐/调仓/风控/签约/系统',
|
||
title VARCHAR(128) NOT NULL,
|
||
content VARCHAR(512) NULL,
|
||
biz_id VARCHAR(64) NULL COMMENT '关联业务单号(订单/工单/预警)',
|
||
is_read TINYINT NOT NULL DEFAULT 0,
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
KEY idx_user_read (user_id, is_read)
|
||
) COMMENT='站内信/消息中心表(投顾触达客户通道)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 21 运营参数表(免发版调整)
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS sys_config (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
config_key VARCHAR(64) NOT NULL COMMENT '键,如 high_net_worth_threshold',
|
||
config_value VARCHAR(255) NOT NULL COMMENT '值',
|
||
description VARCHAR(255) NULL COMMENT '说明',
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
UNIQUE KEY uk_config_key (config_key)
|
||
) COMMENT='运营参数 KV 表(高净值门槛/偏离度阈值/风控开关等)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 22 记忆单元表(记忆架构主体,见开发计划 §4.2)
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS memory_unit (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
customer_id BIGINT UNSIGNED NOT NULL COMMENT '归属客户',
|
||
tag VARCHAR(64) NOT NULL COMMENT '标签名,如 risk_preference',
|
||
content VARCHAR(512) NOT NULL COMMENT '内容,如 偏好稳健型理财',
|
||
info_type VARCHAR(8) NOT NULL COMMENT 'FACT 客观事实 / OPINION 主观观点',
|
||
source VARCHAR(32) NOT NULL COMMENT '风评问卷/行为推断/AI对话提取/用户自述/系统默认',
|
||
source_confidence DECIMAL(5,2) NOT NULL DEFAULT 0.20 COMMENT '来源初始置信度',
|
||
confidence DECIMAL(5,2) NOT NULL DEFAULT 0.20 COMMENT '当前置信度(动态)',
|
||
evidence_count INT NOT NULL DEFAULT 0 COMMENT '证据数',
|
||
conflict_count INT NOT NULL DEFAULT 0 COMMENT '冲突数',
|
||
recall_count INT NOT NULL DEFAULT 0 COMMENT '召回数',
|
||
update_time DATETIME NULL,
|
||
last_recall_time DATETIME NULL,
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
status VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT 'active/demoted/archived/deleted',
|
||
valid_until DATE NULL COMMENT '有效期',
|
||
KEY idx_customer_status (customer_id, status),
|
||
KEY idx_tag (tag)
|
||
) COMMENT='记忆单元表(三层记忆中期主体,向量镜像在 Milvus customer_memory)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 23 基金业绩指标缓存(定时任务从净值计算)
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS fund_performance (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
product_id BIGINT UNSIGNED NOT NULL,
|
||
period VARCHAR(16) NOT NULL COMMENT '近1月/近3月/近6月/近1年/成立以来',
|
||
return_rate DECIMAL(10,4) NULL COMMENT '区间收益率(%)',
|
||
annual_volatility DECIMAL(10,4) NULL COMMENT '年化波动率(%)',
|
||
max_drawdown DECIMAL(10,4) NULL COMMENT '最大回撤(%)',
|
||
sharpe DECIMAL(10,4) NULL COMMENT '夏普比率',
|
||
calc_date DATE NOT NULL COMMENT '计算日期',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
UNIQUE KEY uk_product_period (product_id, period)
|
||
) COMMENT='基金业绩指标缓存(深度分析/多维对比数据源)';
|
||
|
||
-- ---------------------------------------------------------------------
|
||
-- 24 组合基准配置(再平衡参照系)
|
||
-- ---------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS portfolio_benchmark (
|
||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||
risk_level VARCHAR(16) NOT NULL COMMENT '客户风险等级:保守/稳健/平衡/进取/激进',
|
||
target_allocation JSON NOT NULL COMMENT '目标配置 {货币:50,债券:40,股票:10}',
|
||
drift_threshold DECIMAL(5,2) NOT NULL DEFAULT 5.00 COMMENT '偏离阈值(%),超阈值触发调仓建议',
|
||
status VARCHAR(8) NOT NULL DEFAULT '启用' COMMENT '启用/停用',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
UNIQUE KEY uk_risk_level (risk_level)
|
||
) COMMENT='组合基准配置表(投顾Agent 再平衡参照,运营可调整)'; |