CREATE DATABASE IF NOT EXISTS scense DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE scense; CREATE TABLE IF NOT EXISTS world (id BIGINT NOT NULL AUTO_INCREMENT COMMENT '世界ID', code VARCHAR(64) NOT NULL, name VARCHAR(128) NOT NULL, status VARCHAR(16) NOT NULL DEFAULT 'active', description VARCHAR(512) DEFAULT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uk_world_code (code)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='世界'; CREATE TABLE IF NOT EXISTS scene (id BIGINT NOT NULL AUTO_INCREMENT, world_id BIGINT NOT NULL, code VARCHAR(64) NOT NULL, name VARCHAR(128) NOT NULL, scene_type VARCHAR(32) DEFAULT 'normal', status VARCHAR(16) NOT NULL DEFAULT 'active', config_json TEXT, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uk_scene_code (code), KEY idx_scene_world (world_id)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='场景'; CREATE TABLE IF NOT EXISTS entity (id BIGINT NOT NULL AUTO_INCREMENT, scene_id BIGINT NOT NULL, entity_type VARCHAR(32) NOT NULL, name VARCHAR(128) NOT NULL, attrs_json TEXT, status VARCHAR(16) NOT NULL DEFAULT 'active', created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_entity_scene (scene_id)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='实体'; CREATE TABLE IF NOT EXISTS script_engine (id BIGINT NOT NULL AUTO_INCREMENT, name VARCHAR(128) NOT NULL, script_type VARCHAR(32) NOT NULL DEFAULT 'lua', content MEDIUMTEXT, status VARCHAR(16) NOT NULL DEFAULT 'active', created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uk_script_name (name)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='脚本引擎'; CREATE TABLE IF NOT EXISTS world_snapshot (id BIGINT NOT NULL AUTO_INCREMENT, world_id BIGINT NOT NULL, version INT NOT NULL DEFAULT 1, snapshot_json LONGTEXT, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_snapshot_world (world_id, version)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='世界快照'; CREATE TABLE IF NOT EXISTS world_sync (id BIGINT NOT NULL AUTO_INCREMENT, world_id BIGINT NOT NULL, sync_type VARCHAR(32) NOT NULL, status VARCHAR(16) NOT NULL DEFAULT 'pending', payload_json TEXT, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_sync_world (world_id)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='世界同步'; -- ========== 基础框架表(rbac/appbase 单库模式,全新库需先建)========== /*M!999999\- enable the sandbox mode */ /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE IF NOT EXISTS `users` ( `id` varchar(32) NOT NULL COMMENT '用户id', `username` varchar(255) DEFAULT NULL COMMENT '用户名', `password` varchar(255) DEFAULT NULL COMMENT '密码', `email` varchar(255) DEFAULT NULL COMMENT '邮件地址', `orgid` varchar(32) DEFAULT NULL COMMENT '所属机构', `nick_name` varchar(255) DEFAULT NULL COMMENT '显示名', `address` varchar(255) DEFAULT NULL COMMENT '地址', `mobile` varchar(255) DEFAULT NULL COMMENT '手机', `user_status` varchar(1) DEFAULT '0' COMMENT '用户状态', `created_at` date DEFAULT NULL COMMENT '注册日期', `last_login` timestamp NULL DEFAULT NULL COMMENT '最后登录时间', `login_fail_count` smallint(6) NOT NULL DEFAULT 0 COMMENT '连续登录失败次数', `last_login_fail` timestamp NULL DEFAULT NULL COMMENT '最后登录失败时间', `sync_from` varchar(32) DEFAULT NULL COMMENT '同步应用id', PRIMARY KEY (`id`), UNIQUE KEY `users_idx2` (`username`), KEY `users_idx1` (`orgid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户'; /*!40101 SET character_set_client = @saved_cs_client */; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE IF NOT EXISTS `organization` ( `id` varchar(32) NOT NULL COMMENT '机构编码', `orgname` varchar(100) DEFAULT NULL COMMENT '机构名称', `alias_name` varchar(100) DEFAULT NULL COMMENT '机构别名', `contactor` varchar(32) DEFAULT NULL COMMENT '联系人', `contactor_phone` varchar(100) DEFAULT NULL COMMENT '联系人电话', `province_id` varchar(32) DEFAULT NULL COMMENT '所在省id', `city_id` varchar(32) DEFAULT NULL COMMENT '所在城市id', `distinct_id` varchar(32) DEFAULT NULL COMMENT '所在地区id', `emailaddress` varchar(256) DEFAULT NULL COMMENT '邮箱', `address` varchar(400) DEFAULT NULL COMMENT '地址', `main_business` varchar(1000) DEFAULT NULL COMMENT '主营业务描述', `orgcode` varchar(100) DEFAULT NULL COMMENT '组织结构代码', `license_img` varchar(400) DEFAULT NULL COMMENT '营业执照', `id_img` varchar(400) DEFAULT NULL COMMENT '身份证', `parentid` varchar(32) DEFAULT NULL COMMENT '父机构id', `org_type` varchar(32) DEFAULT NULL COMMENT '机构类型', `accountid` varchar(32) DEFAULT NULL COMMENT '账号', `del_flg` varchar(1) DEFAULT '0' COMMENT '删除标志', `create_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '创建时间戳', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='机构'; /*!40101 SET character_set_client = @saved_cs_client */; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE IF NOT EXISTS `orgtypes` ( `id` varchar(32) NOT NULL COMMENT 'id', `orgid` varchar(32) DEFAULT NULL COMMENT '机构id', `orgtypeid` varchar(32) DEFAULT NULL COMMENT '机构类型', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='机构拥有角色'; /*!40101 SET character_set_client = @saved_cs_client */; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE IF NOT EXISTS `org_roles` ( `id` varchar(32) NOT NULL COMMENT 'id', `orgid` varchar(32) DEFAULT NULL COMMENT '机构编码', `roleid` varchar(32) DEFAULT NULL COMMENT '角色编码', `del_flg` varchar(1) DEFAULT '0' COMMENT '删除标志', `create_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '创建时间戳', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='机构角色'; /*!40101 SET character_set_client = @saved_cs_client */; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE IF NOT EXISTS `role` ( `id` varchar(32) NOT NULL COMMENT '角色id', `orgtypeid` varchar(32) DEFAULT '0' COMMENT '机构类型', `role` varchar(100) DEFAULT NULL COMMENT '角色', `rolelabel` varchar(100) DEFAULT NULL COMMENT '角色名称', `name` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `role_idx1` (`orgtypeid`,`role`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=' 角色'; /*!40101 SET character_set_client = @saved_cs_client */; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE IF NOT EXISTS `rolepermission` ( `id` varchar(32) NOT NULL COMMENT 'id', `roleid` varchar(32) DEFAULT NULL COMMENT '角色id', `permid` varchar(32) DEFAULT NULL COMMENT '权限id', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色权限表'; /*!40101 SET character_set_client = @saved_cs_client */; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE IF NOT EXISTS `userrole` ( `id` varchar(32) NOT NULL COMMENT '用户id', `userid` varchar(32) DEFAULT NULL COMMENT '用户id', `roleid` varchar(32) DEFAULT NULL COMMENT '角色id', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户角色'; /*!40101 SET character_set_client = @saved_cs_client */; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE IF NOT EXISTS `permission` ( `id` varchar(32) NOT NULL COMMENT '权限id', `name` varchar(255) DEFAULT NULL COMMENT '名称', `description` varchar(255) DEFAULT NULL COMMENT '描述', `ptype` varchar(20) DEFAULT NULL COMMENT '类型', `parentid` varchar(32) DEFAULT NULL COMMENT '父权限id', `path` varchar(255) DEFAULT NULL COMMENT '路径', `title` varchar(255) DEFAULT NULL COMMENT '标题', `icon` varchar(255) DEFAULT NULL COMMENT '图标', PRIMARY KEY (`id`), KEY `permission_idx1` (`ptype`), KEY `permission_idx2` (`parentid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='权限'; /*!40101 SET character_set_client = @saved_cs_client */; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE IF NOT EXISTS `params` ( `id` varchar(32) NOT NULL, `params_name` varchar(255) NOT NULL, `params_value` varchar(4000) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;