You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1.5 KiB
29 lines
1.5 KiB
-- 1. 存储模块定义(例如:AI 决定创建一个“线索管理”模块,它的字段定义存这里) |
|
CREATE TABLE sys_entities ( |
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(), |
|
entity_code VARCHAR(50) UNIQUE NOT NULL, -- 模块标识,如 'crm_lead' |
|
entity_name VARCHAR(100) NOT NULL, -- 模块名称,如 '销售线索' |
|
schema_definition JSONB NOT NULL, -- 核心:存储字段定义的 JSON (类型、标签、校验) |
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, |
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP |
|
); |
|
|
|
-- 2. 存储动态业务数据(所有的业务数据都进这一张表,靠 entity_id 区分) |
|
CREATE TABLE sys_dynamic_data ( |
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(), |
|
entity_id UUID REFERENCES sys_entities(id), |
|
data JSONB NOT NULL, -- 核心:存储具体的业务字段数据 |
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, |
|
creator_id VARCHAR(50) -- 预留租户或用户 ID |
|
); |
|
|
|
-- 3. 存储 AI 会话记忆(LangChain4j 自动持久化对话用) |
|
CREATE TABLE chat_memory ( |
|
id SERIAL PRIMARY KEY, |
|
chat_session_id VARCHAR(255) NOT NULL, |
|
content TEXT NOT NULL, -- 存储对话内容 |
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP |
|
); |
|
|
|
-- 为 JSONB 字段创建 GIN 索引,保证以后千万级数据的查询速度 |
|
CREATE INDEX idx_entity_data ON sys_dynamic_data USING GIN (data);
|
|
|