56 lines
2.6 KiB
SQL
56 lines
2.6 KiB
SQL
# -*- coding: utf-8 -*-
|
||
-- demo 模块 DDL(部署参考;实际建表由宿主 build.sh 用 json2ddl 生成)
|
||
CREATE TABLE IF NOT EXISTS demo_session (
|
||
id VARCHAR(64) NOT NULL COMMENT '会话ID',
|
||
world_id VARCHAR(64) NOT NULL COMMENT '世界ID',
|
||
session_name VARCHAR(128) NOT NULL DEFAULT '' COMMENT '演示名称',
|
||
status VARCHAR(16) NOT NULL DEFAULT 'preview' COMMENT 'preview/paused/ended',
|
||
camera_mode VARCHAR(16) NOT NULL DEFAULT 'orbit' COMMENT 'orbit/topdown/firstperson',
|
||
owner_id VARCHAR(32) NOT NULL DEFAULT '0' COMMENT '发起人',
|
||
viewer_count INT NOT NULL DEFAULT 0 COMMENT '在线人数',
|
||
extra_json TEXT COMMENT '扩展JSON(全屏等)',
|
||
created_at DATETIME,
|
||
updated_at DATETIME,
|
||
PRIMARY KEY (id),
|
||
KEY idx_demo_session_world (world_id),
|
||
KEY idx_demo_session_status (status)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='演示会话表';
|
||
|
||
CREATE TABLE IF NOT EXISTS demo_session_state (
|
||
id VARCHAR(64) NOT NULL COMMENT '主键',
|
||
session_id VARCHAR(64) NOT NULL COMMENT '演示会话ID',
|
||
entity_id VARCHAR(64) NOT NULL COMMENT '实体ID',
|
||
entity_name VARCHAR(128) NOT NULL DEFAULT '' COMMENT '实体名称',
|
||
base_json TEXT COMMENT '演示开始基线(只读)',
|
||
demo_json TEXT COMMENT '演示中当前值(可改)',
|
||
updated_at DATETIME,
|
||
PRIMARY KEY (id),
|
||
KEY idx_state_session (session_id),
|
||
KEY idx_state_entity (entity_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='演示实体状态覆盖层';
|
||
|
||
CREATE TABLE IF NOT EXISTS demo_hot_script (
|
||
id VARCHAR(64) NOT NULL COMMENT '主键',
|
||
session_id VARCHAR(64) NOT NULL COMMENT '演示会话ID',
|
||
script_id VARCHAR(64) NOT NULL COMMENT '脚本ID(script_engine联动)',
|
||
script_name VARCHAR(128) NOT NULL DEFAULT '' COMMENT '脚本名称',
|
||
script_type VARCHAR(16) NOT NULL DEFAULT 'python' COMMENT 'python/expr',
|
||
script_content TEXT COMMENT '脚本内容',
|
||
updated_at DATETIME,
|
||
PRIMARY KEY (id),
|
||
KEY idx_hot_session (session_id),
|
||
KEY idx_hot_script (script_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='演示热加载脚本';
|
||
|
||
CREATE TABLE IF NOT EXISTS demo_presence (
|
||
id VARCHAR(64) NOT NULL COMMENT '主键',
|
||
session_id VARCHAR(64) NOT NULL COMMENT '演示会话ID',
|
||
user_id VARCHAR(64) NOT NULL COMMENT '在线用户ID',
|
||
user_name VARCHAR(64) NOT NULL DEFAULT '' COMMENT '在线用户名称',
|
||
joined_at DATETIME,
|
||
last_seen_at DATETIME,
|
||
PRIMARY KEY (id),
|
||
KEY idx_presence_session (session_id),
|
||
KEY idx_presence_user (user_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='演示多人预览在线表';
|