| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356 |
- -- GameItems模块数据库表结构
- -- 游戏物品模块,负责游戏内所有物品的管理
- -- 物品分类表
- CREATE TABLE `kku_item_categories` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '分类ID,主键',
- `name` varchar(255) NOT NULL COMMENT '分类名称',
- `code` varchar(100) NOT NULL COMMENT '分类编码(唯一)',
- `icon` varchar(255) DEFAULT NULL COMMENT '分类图标',
- `sort` int DEFAULT '0' COMMENT '排序权重',
- `parent_id` int DEFAULT NULL COMMENT '父分类ID(可为空,用于实现分类层级)',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `idx_code` (`code`),
- KEY `idx_parent_id` (`parent_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='物品分类表';
- -- 统一属性物品表
- CREATE TABLE `kku_item_items` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '物品ID,主键',
- `name` varchar(255) NOT NULL COMMENT '物品名称',
- `description` text COMMENT '物品描述',
- `category_id` int NOT NULL COMMENT '物品分类ID,外键关联kku_item_categories表',
- `type` tinyint NOT NULL COMMENT '物品类型(1:可使用, 2:可装备, 3:可合成, 4:可交任务, 5:可开启...)',
- `is_unique` tinyint DEFAULT '0' COMMENT '是否是单独属性物品(0:否,默认, 1:是)',
- `icon` varchar(255) DEFAULT NULL COMMENT '物品图标路径',
- `max_stack` int DEFAULT '1' COMMENT '最大堆叠数量',
- `sell_price` int DEFAULT '0' COMMENT '出售价格',
- `tradable` tinyint DEFAULT '1' COMMENT '是否可交易(0:不可交易, 1:可交易,默认)',
- `dismantlable` tinyint DEFAULT '1' COMMENT '是否可分解(0:不可分解, 1:可分解,默认)',
- `default_expire_seconds` int DEFAULT '0' COMMENT '玩家获取物品后的默认有效秒数(0表示永久有效)',
- `display_attributes` json DEFAULT NULL COMMENT '展示属性,以JSON格式存储键值对,用于界面展示和描述的属性',
- `numeric_attributes` json DEFAULT NULL COMMENT '数值属性,以JSON格式存储键值对,用于计算和游戏逻辑的属性',
- `global_expire_at` timestamp NULL DEFAULT NULL COMMENT '物品全局过期时间(可为空)',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_category_id` (`category_id`),
- KEY `idx_type` (`type`),
- KEY `idx_is_unique` (`is_unique`),
- KEY `idx_tradable` (`tradable`),
- KEY `idx_dismantlable` (`dismantlable`),
- KEY `idx_global_expire_at` (`global_expire_at`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='统一属性物品表';
- -- 单独属性物品表
- CREATE TABLE `kku_item_instances` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '唯一物品ID,主键',
- `item_id` int NOT NULL COMMENT '关联的基础物品ID,外键关联kku_item_items表',
- `name` varchar(255) DEFAULT NULL COMMENT '物品名称(可以与基础物品不同)',
- `display_attributes` json DEFAULT NULL COMMENT '展示属性,以JSON格式存储键值对',
- `numeric_attributes` json DEFAULT NULL COMMENT '数值属性,以JSON格式存储键值对',
- `tradable` tinyint DEFAULT '1' COMMENT '是否可交易(0:不可交易, 1:可交易,默认)',
- `is_bound` tinyint DEFAULT '0' COMMENT '是否已绑定(0:未绑定, 1:已绑定)',
- `bound_to` varchar(255) DEFAULT NULL COMMENT '绑定对象(账号ID或角色ID)',
- `bind_exp_time` timestamp NULL DEFAULT NULL COMMENT '绑定过期时间(为空表示永久绑定)',
- `expire_at` timestamp NULL DEFAULT NULL COMMENT '物品过期时间(可为空)',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_item_id` (`item_id`),
- KEY `idx_tradable` (`tradable`),
- KEY `idx_is_bound` (`is_bound`),
- KEY `idx_bound_to` (`bound_to`),
- KEY `idx_bind_exp_time` (`bind_exp_time`),
- KEY `idx_expire_at` (`expire_at`),
- CONSTRAINT `fk_instance_item` FOREIGN KEY (`item_id`) REFERENCES `kku_item_items` (`id`) ON DELETE CASCADE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='单独属性物品表';
- -- 用户物品关联表
- CREATE TABLE `kku_item_users` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `user_id` int NOT NULL COMMENT '用户ID',
- `item_id` int NOT NULL COMMENT '统一属性物品ID,外键关联kku_item_items表',
- `instance_id` int DEFAULT NULL COMMENT '单独属性物品ID,外键关联kku_item_instances表(可为空)',
- `quantity` int NOT NULL DEFAULT '1' COMMENT '数量(对于单独属性物品,该值始终为1)',
- `expire_at` timestamp NULL DEFAULT NULL COMMENT '用户物品过期时间(可为空)',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '获取时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_user_item` (`user_id`, `item_id`),
- KEY `idx_user_instance` (`user_id`, `instance_id`),
- KEY `idx_expire_at` (`expire_at`),
- CONSTRAINT `fk_user_item` FOREIGN KEY (`item_id`) REFERENCES `kku_item_items` (`id`) ON DELETE CASCADE,
- CONSTRAINT `fk_user_instance` FOREIGN KEY (`instance_id`) REFERENCES `kku_item_instances` (`id`) ON DELETE CASCADE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户物品关联表';
- -- 物品组表
- CREATE TABLE `kku_item_groups` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '物品组ID,主键',
- `name` varchar(255) NOT NULL COMMENT '物品组名称',
- `code` varchar(100) NOT NULL COMMENT '物品组编码(唯一)',
- `description` text COMMENT '物品组描述',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `idx_code` (`code`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='物品组表';
- -- 物品组内容表
- CREATE TABLE `kku_item_group_items` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `group_id` int NOT NULL COMMENT '物品组ID,外键关联kku_item_groups表',
- `item_id` int NOT NULL COMMENT '物品ID,外键关联kku_item_items表',
- `weight` decimal(5,3) NOT NULL COMMENT '权重,决定从物品组中选择该物品的概率',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_group_id` (`group_id`),
- KEY `idx_item_id` (`item_id`),
- CONSTRAINT `fk_group_group` FOREIGN KEY (`group_id`) REFERENCES `kku_item_groups` (`id`) ON DELETE CASCADE,
- CONSTRAINT `fk_group_item` FOREIGN KEY (`item_id`) REFERENCES `kku_item_items` (`id`) ON DELETE CASCADE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='物品组内容表';
- -- 宝箱内容配置表
- CREATE TABLE `kku_item_chest_contents` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `chest_id` int NOT NULL COMMENT '宝箱物品ID,外键关联kku_item_items表',
- `item_id` int DEFAULT NULL COMMENT '可能获得的物品ID,外键关联kku_item_items表(与group_id二选一)',
- `group_id` int DEFAULT NULL COMMENT '物品组ID,外键关联kku_item_groups表(与item_id二选一)',
- `min_quantity` int DEFAULT '1' COMMENT '最小数量',
- `max_quantity` int DEFAULT '1' COMMENT '最大数量',
- `weight` decimal(5,3) NOT NULL COMMENT '权重,决定获取概率',
- `allow_duplicate` tinyint DEFAULT '0' COMMENT '是否允许在同一宝箱中重复掉落(0:不允许, 1:允许)',
- `pity_count` int DEFAULT '0' COMMENT '保底次数,当玩家连续未获得该内容达到次数后必定获得(0表示不启用保底)',
- `pity_weight_factor` float DEFAULT '1.0' COMMENT '保底权重因子,用于递增概率计算(默认1.0)',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_chest_id` (`chest_id`),
- KEY `idx_item_id` (`item_id`),
- KEY `idx_group_id` (`group_id`),
- KEY `idx_pity_count` (`pity_count`),
- CONSTRAINT `fk_chest_content_chest` FOREIGN KEY (`chest_id`) REFERENCES `kku_item_items` (`id`) ON DELETE CASCADE,
- CONSTRAINT `fk_chest_content_item` FOREIGN KEY (`item_id`) REFERENCES `kku_item_items` (`id`) ON DELETE CASCADE,
- CONSTRAINT `fk_chest_content_group` FOREIGN KEY (`group_id`) REFERENCES `kku_item_groups` (`id`) ON DELETE CASCADE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='宝箱内容配置表';
- -- 用户宝箱内容保底计数表
- CREATE TABLE `kku_item_pity_times` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `user_id` int NOT NULL COMMENT '用户ID',
- `chest_id` int NOT NULL COMMENT '宝箱ID,外键关联kku_item_items表',
- `chest_content_id` int NOT NULL COMMENT '宝箱内容ID,外键关联kku_item_chest_contents表',
- `current_count` int NOT NULL DEFAULT '0' COMMENT '当前计数,每开启一次宝箱增加1',
- `last_reset_time` timestamp NULL DEFAULT NULL COMMENT '上次重置时间(可用于周期性重置)',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `idx_user_chest_content` (`user_id`, `chest_id`, `chest_content_id`),
- CONSTRAINT `fk_pity_chest` FOREIGN KEY (`chest_id`) REFERENCES `kku_item_items` (`id`) ON DELETE CASCADE,
- CONSTRAINT `fk_pity_content` FOREIGN KEY (`chest_content_id`) REFERENCES `kku_item_chest_contents` (`id`) ON DELETE CASCADE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户宝箱内容保底计数表';
- -- 物品产出限制表
- CREATE TABLE `kku_item_output_limits` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `item_id` int NOT NULL COMMENT '物品ID,外键关联kku_item_items表',
- `limit_type` tinyint NOT NULL COMMENT '限制类型(1:全局总量, 2:单个用户, 3:单日全局, 4:单日用户)',
- `max_quantity` int NOT NULL COMMENT '最大产出数量',
- `current_quantity` int DEFAULT '0' COMMENT '当前已产出数量(全局限制时使用)',
- `reset_type` tinyint DEFAULT '0' COMMENT '重置类型(0:不重置, 1:每日, 2:每周, 3:每月)',
- `last_reset_time` timestamp NULL DEFAULT NULL COMMENT '上次重置时间',
- `related_items` json DEFAULT NULL COMMENT '关联物品ID列表,这些物品共享同一个限制额度',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_item_id` (`item_id`),
- KEY `idx_limit_reset` (`limit_type`, `reset_type`),
- CONSTRAINT `fk_limit_item` FOREIGN KEY (`item_id`) REFERENCES `kku_item_items` (`id`) ON DELETE CASCADE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='物品产出限制表';
- -- 用户物品产出限制计数表
- CREATE TABLE `kku_item_user_output_counters` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `user_id` int NOT NULL COMMENT '用户ID',
- `limit_id` int NOT NULL COMMENT '产出限制ID,外键关联kku_item_output_limits表',
- `current_count` int NOT NULL DEFAULT '0' COMMENT '当前产出计数',
- `record_date` date DEFAULT NULL COMMENT '记录日期(用于日期统计和重置)',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_user_limit` (`user_id`, `limit_id`),
- KEY `idx_record_date` (`record_date`),
- CONSTRAINT `fk_user_limit` FOREIGN KEY (`limit_id`) REFERENCES `kku_item_output_limits` (`id`) ON DELETE CASCADE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户物品产出限制计数表';
- -- 物品获取/消耗记录表
- CREATE TABLE `kku_item_transaction_logs` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `user_id` int NOT NULL COMMENT '用户ID',
- `item_id` int NOT NULL COMMENT '物品ID,外键关联kku_item_items表',
- `instance_id` int DEFAULT NULL COMMENT '单独属性物品ID,外键关联kku_item_instances表(可为空)',
- `quantity` int NOT NULL COMMENT '数量(正数表示获取,负数表示消耗)',
- `transaction_type` tinyint NOT NULL COMMENT '交易类型(1:获取, 2:消耗, 3:交易获得, 4:交易失去, 5:过期失效)',
- `source_type` varchar(100) DEFAULT NULL COMMENT '来源类型(如任务奖励、商店购买、宝箱开启等)',
- `source_id` int DEFAULT NULL COMMENT '来源ID(如任务ID、订单ID、宝箱ID等)',
- `attributes` json DEFAULT NULL COMMENT '额外属性,存储交易相关的详细信息',
- `expire_at` timestamp NULL DEFAULT NULL COMMENT '物品过期时间(如果有)',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `ip_address` varchar(100) DEFAULT NULL COMMENT '操作的IP地址(用于安全审计)',
- `device_info` varchar(255) DEFAULT NULL COMMENT '设备信息(用于安全审计)',
- PRIMARY KEY (`id`),
- KEY `idx_user_created` (`user_id`, `created_at`),
- KEY `idx_item_id` (`item_id`),
- KEY `idx_transaction_source` (`transaction_type`, `source_type`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='物品获取/消耗记录表';
- -- 宝箱开启记录表
- CREATE TABLE `kku_item_chest_open_logs` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `user_id` int NOT NULL COMMENT '用户ID',
- `chest_id` int NOT NULL COMMENT '宝箱ID,外键关联kku_item_items表',
- `open_time` timestamp NULL DEFAULT NULL COMMENT '开启时间',
- `open_quantity` int NOT NULL COMMENT '开启数量',
- `result_items` json NOT NULL COMMENT '获得的物品列表,包含物品ID、数量等信息',
- `pity_triggered` tinyint DEFAULT '0' COMMENT '是否触发保底机制(0:否, 1:是)',
- `pity_content_id` int DEFAULT NULL COMMENT '触发保底的内容ID,外键关联kku_item_chest_contents表(可为空)',
- `ip_address` varchar(100) DEFAULT NULL COMMENT '操作的IP地址(用于安全审计)',
- `device_info` varchar(255) DEFAULT NULL COMMENT '设备信息(用于安全审计)',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- PRIMARY KEY (`id`),
- KEY `idx_user_open` (`user_id`, `open_time`),
- KEY `idx_chest_id` (`chest_id`),
- KEY `idx_pity_triggered` (`pity_triggered`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='宝箱开启记录表';
- -- 物品合成配方表
- CREATE TABLE `kku_item_recipes` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '配方ID,主键',
- `name` varchar(255) NOT NULL COMMENT '配方名称',
- `result_item_id` int NOT NULL COMMENT '产出物品ID,外键关联kku_item_items表',
- `result_min_quantity` int DEFAULT '1' COMMENT '最小产出数量',
- `result_max_quantity` int DEFAULT '1' COMMENT '最大产出数量',
- `success_rate` decimal(5,2) NOT NULL COMMENT '成功率(百分比,最大100)',
- `coin_cost` json DEFAULT NULL COMMENT '货币成本,以JSON格式存储多种货币类型和数量',
- `level_required` int DEFAULT '1' COMMENT '所需等级',
- `is_default_unlocked` tinyint DEFAULT '0' COMMENT '是否默认解锁(0:否, 1:是)',
- `unlock_condition` json DEFAULT NULL COMMENT '解锁条件,以JSON格式存储',
- `cooldown_seconds` int DEFAULT '0' COMMENT '冷却时间(秒)',
- `category_id` int DEFAULT NULL COMMENT '配方分类ID',
- `sort_order` int DEFAULT '0' COMMENT '排序权重',
- `is_active` tinyint DEFAULT '1' COMMENT '是否激活(0:否, 1:是)',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_result_item` (`result_item_id`),
- KEY `idx_category` (`category_id`),
- CONSTRAINT `fk_recipe_item` FOREIGN KEY (`result_item_id`) REFERENCES `kku_item_items` (`id`) ON DELETE CASCADE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='物品合成配方表';
- -- 配方材料需求表
- CREATE TABLE `kku_item_recipe_materials` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `recipe_id` int NOT NULL COMMENT '配方ID,外键关联kku_item_recipes表',
- `item_id` int NOT NULL COMMENT '材料物品ID,外键关联kku_item_items表',
- `quantity` int NOT NULL COMMENT '所需数量',
- `is_consumed` tinyint DEFAULT '1' COMMENT '是否消耗(0:不消耗, 1:消耗)',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_recipe_id` (`recipe_id`),
- KEY `idx_item_id` (`item_id`),
- CONSTRAINT `fk_material_recipe` FOREIGN KEY (`recipe_id`) REFERENCES `kku_item_recipes` (`id`) ON DELETE CASCADE,
- CONSTRAINT `fk_material_item` FOREIGN KEY (`item_id`) REFERENCES `kku_item_items` (`id`) ON DELETE CASCADE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='配方材料需求表';
- -- 用户配方解锁状态表
- CREATE TABLE `kku_item_user_recipes` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `user_id` int NOT NULL COMMENT '用户ID',
- `recipe_id` int NOT NULL COMMENT '配方ID,外键关联kku_item_recipes表',
- `is_unlocked` tinyint DEFAULT '0' COMMENT '是否已解锁(0:否, 1:是)',
- `unlock_time` timestamp NULL DEFAULT NULL COMMENT '解锁时间',
- `last_craft_time` timestamp NULL DEFAULT NULL COMMENT '最后合成时间',
- `craft_count` int DEFAULT '0' COMMENT '合成次数',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `idx_user_recipe` (`user_id`, `recipe_id`),
- CONSTRAINT `fk_user_recipe` FOREIGN KEY (`recipe_id`) REFERENCES `kku_item_recipes` (`id`) ON DELETE CASCADE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户配方解锁状态表';
- -- 物品合成记录表
- CREATE TABLE `kku_item_craft_logs` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `user_id` int NOT NULL COMMENT '用户ID',
- `recipe_id` int NOT NULL COMMENT '配方ID,外键关联kku_item_recipes表',
- `materials` json NOT NULL COMMENT '消耗的材料,以JSON格式存储',
- `result_item_id` int NOT NULL COMMENT '获得的物品ID,外键关联kku_item_items表',
- `result_instance_id` int DEFAULT NULL COMMENT '获得的单独属性物品ID,外键关联kku_item_instances表(可为空)',
- `result_quantity` int NOT NULL COMMENT '获得的物品数量',
- `is_success` tinyint NOT NULL COMMENT '是否成功(0:失败, 1:成功)',
- `craft_time` timestamp NULL DEFAULT NULL COMMENT '合成时间',
- `ip_address` varchar(100) DEFAULT NULL COMMENT '操作的IP地址',
- `device_info` varchar(255) DEFAULT NULL COMMENT '设备信息',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- PRIMARY KEY (`id`),
- KEY `idx_user_recipe` (`user_id`, `recipe_id`),
- KEY `idx_craft_time` (`craft_time`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='物品合成记录表';
- -- 物品分解规则表
- CREATE TABLE `kku_item_dismantle_rules` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '规则ID,主键',
- `item_id` int DEFAULT NULL COMMENT '物品ID,外键关联kku_item_items表',
- `category_id` int DEFAULT NULL COMMENT '分类ID,外键关联kku_item_categories表',
- `min_rarity` tinyint DEFAULT '1' COMMENT '最小适用稀有度',
- `max_rarity` tinyint DEFAULT '1' COMMENT '最大适用稀有度',
- `priority` int DEFAULT '0' COMMENT '规则优先级',
- `is_active` tinyint DEFAULT '1' COMMENT '是否激活(0:否, 1:是)',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_item_id` (`item_id`),
- KEY `idx_category_id` (`category_id`),
- KEY `idx_priority` (`priority`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='物品分解规则表';
- -- 物品分解结果配置表
- CREATE TABLE `kku_item_dismantle_results` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `rule_id` int NOT NULL COMMENT '分解规则ID,外键关联kku_item_dismantle_rules表',
- `result_item_id` int NOT NULL COMMENT '结果物品ID,外键关联kku_item_items表',
- `min_quantity` int DEFAULT '1' COMMENT '最小数量',
- `max_quantity` int DEFAULT '1' COMMENT '最大数量',
- `base_chance` decimal(5,2) NOT NULL COMMENT '基础获取概率(百分比,最大100)',
- `rarity_factor` decimal(5,2) DEFAULT '1.0' COMMENT '稀有度影响因子',
- `quality_factor` decimal(5,2) DEFAULT '1.0' COMMENT '品质影响因子',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_rule_id` (`rule_id`),
- KEY `idx_result_item` (`result_item_id`),
- CONSTRAINT `fk_result_rule` FOREIGN KEY (`rule_id`) REFERENCES `kku_item_dismantle_rules` (`id`) ON DELETE CASCADE,
- CONSTRAINT `fk_result_item` FOREIGN KEY (`result_item_id`) REFERENCES `kku_item_items` (`id`) ON DELETE CASCADE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='物品分解结果配置表';
- -- 物品分解记录表
- CREATE TABLE `kku_item_dismantle_logs` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `user_id` int NOT NULL COMMENT '用户ID',
- `item_id` int NOT NULL COMMENT '被分解的物品ID,外键关联kku_item_items表',
- `instance_id` int DEFAULT NULL COMMENT '被分解的单独属性物品ID,外键关联kku_item_instances表(可为空)',
- `quantity` int NOT NULL COMMENT '分解数量',
- `rule_id` int NOT NULL COMMENT '使用的分解规则ID,外键关联kku_item_dismantle_rules表',
- `results` json NOT NULL COMMENT '分解结果,包含获得的物品ID、数量等信息',
- `dismantle_time` timestamp NULL DEFAULT NULL COMMENT '分解时间',
- `ip_address` varchar(100) DEFAULT NULL COMMENT '操作的IP地址',
- `device_info` varchar(255) DEFAULT NULL COMMENT '设备信息',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- PRIMARY KEY (`id`),
- KEY `idx_user_item` (`user_id`, `item_id`),
- KEY `idx_dismantle_time` (`dismantle_time`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='物品分解记录表';
|