-- pbl_domain_ext 表 DDL(自动生成,与 apps/pbls/scripts/ddl/pbls_tables.sql 同源) CREATE TABLE IF NOT EXISTS `pbl_tenant` ( `tenant_id` VARCHAR(32) NOT NULL NOT NULL COMMENT 租户ID(强制打头), `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 主键, `tenant_uid` VARCHAR(32) NOT NULL COMMENT "租户UID", `name` VARCHAR(128) NOT NULL COMMENT "名称", `kind` VARCHAR(64) NOT NULL COMMENT "类型", `plan` VARCHAR(64) NOT NULL COMMENT "套餐", `seat_limit` INT NOT NULL DEFAULT 0 COMMENT "席位", `status` VARCHAR(64) NOT NULL COMMENT "状态", `config_json` LONGTEXT NULL COMMENT "配置", `created_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "创建时间(应用层写入)", `updated_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "更新时间(应用层写入)", PRIMARY KEY (`id`), UNIQUE KEY `uk_ten_uid` (`tenant_id`, `tenant_uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT="租户(多租户边界第25章,不改基表)"; CREATE TABLE IF NOT EXISTS `pbl_class` ( `tenant_id` VARCHAR(32) NOT NULL NOT NULL COMMENT 租户ID(强制打头), `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 主键, `class_uid` VARCHAR(32) NOT NULL COMMENT "班级UID", `name` VARCHAR(128) NOT NULL COMMENT "名称", `grade` VARCHAR(64) NOT NULL COMMENT "年级", `teacher_id` VARCHAR(32) NOT NULL COMMENT "教师", `student_count` INT NOT NULL DEFAULT 0 COMMENT "学生数", `roster_json` LONGTEXT NULL COMMENT "花名册", `status` VARCHAR(64) NOT NULL COMMENT "状态", `created_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "创建时间(应用层写入)", `updated_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "更新时间(应用层写入)", PRIMARY KEY (`id`), UNIQUE KEY `uk_cls_uid` (`tenant_id`, `class_uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT="班级(花名册内联 roster_json)"; CREATE TABLE IF NOT EXISTS `pbl_team` ( `tenant_id` VARCHAR(32) NOT NULL NOT NULL COMMENT 租户ID(强制打头), `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 主键, `team_uid` VARCHAR(32) NOT NULL COMMENT "团队UID", `class_id` BIGINT UNSIGNED NOT NULL COMMENT "班级", `name` VARCHAR(128) NOT NULL COMMENT "名称", `mission_id` BIGINT UNSIGNED NOT NULL COMMENT "Mission", `members_json` LONGTEXT NULL COMMENT "成员", `capacity` INT NOT NULL DEFAULT 0 COMMENT "容量", `status` VARCHAR(64) NOT NULL COMMENT "状态", `session_id` BIGINT UNSIGNED NOT NULL COMMENT "绑定会话", `created_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "创建时间(应用层写入)", `updated_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "更新时间(应用层写入)", PRIMARY KEY (`id`), UNIQUE KEY `uk_team_uid` (`tenant_id`, `team_uid`), KEY `idx_team_class` (`tenant_id`, `class_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT="团队(成员内联 members_json,不改基表)";