CREATE TABLE IF NOT EXISTS sessions ( id UUID PRIMARY KEY, user_id UUID NOT NULL, title VARCHAR(100) NOT NULL DEFAULT '新对话', config JSONB NOT NULL DEFAULT '{}', created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), CONSTRAINT check_title_length CHECK (char_length(title) >= 1 AND char_length(title) <= 100) ); 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); -- 表和列注释 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 '会话最后更新时间';