2026-06-14 18:54:18 +08:00
|
|
|
|
CREATE TABLE IF NOT EXISTS sessions (
|
|
|
|
|
|
id UUID PRIMARY KEY,
|
|
|
|
|
|
user_id UUID NOT NULL,
|
2026-06-23 23:41:49 +08:00
|
|
|
|
title VARCHAR(100) NOT NULL DEFAULT '新对话',
|
2026-06-14 18:54:18 +08:00
|
|
|
|
config JSONB NOT NULL DEFAULT '{}',
|
|
|
|
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
2026-06-23 23:41:49 +08:00
|
|
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
|
|
|
|
|
|
|
|
|
|
CONSTRAINT check_title_length CHECK (char_length(title) >= 1 AND char_length(title) <= 100)
|
2026-06-14 18:54:18 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_sessions_user_id ON sessions (user_id);
|
|
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_sessions_user_updated ON sessions (user_id, updated_at DESC);
|
2026-06-23 23:41:49 +08:00
|
|
|
|
|
|
|
|
|
|
-- 表和列注释
|
|
|
|
|
|
COMMENT ON TABLE sessions IS '会话表,存储用户的对话会话信息';
|
|
|
|
|
|
COMMENT ON COLUMN sessions.id IS '会话唯一标识符 (UUID)';
|
|
|
|
|
|
COMMENT ON COLUMN sessions.user_id IS '所属用户 ID,关联 users 表';
|
|
|
|
|
|
COMMENT ON COLUMN sessions.title IS '会话标题,默认为"新对话",长度 1-100 字符';
|
|
|
|
|
|
COMMENT ON COLUMN sessions.config IS '会话配置 (JSONB),包含: tts_enabled (布尔), detail_level (''low''/''high''), language (语言代码), scenario (情景 ID)';
|
|
|
|
|
|
COMMENT ON COLUMN sessions.created_at IS '会话创建时间';
|
|
|
|
|
|
COMMENT ON COLUMN sessions.updated_at IS '会话最后更新时间';
|