农场模块包含以下核心数据表:
存储用户的农场基本信息,包括房屋等级等。
CREATE TABLE `farm_users` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`house_level` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '房屋等级',
`last_upgrade_time` timestamp NULL DEFAULT NULL COMMENT '最后升级时间',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_user_id` (`user_id`),
KEY `idx_house_level` (`house_level`),
KEY `idx_last_upgrade_time` (`last_upgrade_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户农场信息表';
存储用户的神灵加持状态,包括加持类型和过期时间。
CREATE TABLE `farm_god_buffs` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`buff_type` tinyint(3) unsigned NOT NULL COMMENT 'buff类型:1丰收之神,2雨露之神,3屠草之神,4拭虫之神',
`expire_time` timestamp NOT NULL COMMENT '过期时间',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_expire_time` (`expire_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='神灵加持表';
存储用户的土地信息,包括位置、类型和状态。
CREATE TABLE `farm_land_users` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`position` tinyint(3) unsigned NOT NULL COMMENT '土地位置(1-20)',
`land_type` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '土地类型:1普通,2红土,3黑土,4金,5蓝,6紫',
`status` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '土地状态:0空闲,1种植中,2灾害,3可收获,4枯萎',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_user_position` (`user_id`,`position`),
KEY `idx_user_id` (`user_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='土地信息表';
存储种植的作物信息,包括生长阶段、灾害等。
CREATE TABLE `farm_crops` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`land_id` bigint(20) unsigned NOT NULL COMMENT '土地ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`seed_id` bigint(20) unsigned NOT NULL COMMENT '种子ID',
`plant_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '种植时间',
`growth_stage` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '生长阶段:1种子期,2发芽期,3生长期,4成熟期,5枯萎期',
`stage_end_time` timestamp NULL DEFAULT NULL COMMENT '当前阶段结束时间',
`disasters` json DEFAULT NULL COMMENT '灾害情况',
`fertilized` tinyint(1) NOT NULL DEFAULT '0' COMMENT '当前阶段是否已使用化肥',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_land_id` (`land_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_seed_id` (`seed_id`),
KEY `idx_growth_stage` (`growth_stage`),
KEY `idx_stage_end_time` (`stage_end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='作物信息表';
存储种子的基本配置信息。
CREATE TABLE `farm_seeds` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '种子名称',
`type` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '种子类型:1普通,2神秘,3巨化',
`seed_time` int(10) unsigned NOT NULL COMMENT '种子期时间(秒)',
`min_output` int(10) unsigned NOT NULL COMMENT '最小产出',
`max_output` int(10) unsigned NOT NULL COMMENT '最大产出',
`item_id` bigint(20) unsigned NOT NULL COMMENT '对应的物品ID',
`disaster_resistance` json DEFAULT NULL COMMENT '灾害抵抗',
`display_attributes` json DEFAULT NULL COMMENT '显示属性',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_type` (`type`),
KEY `idx_item_id` (`item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='种子配置表';
存储果实的生长周期配置信息。
CREATE TABLE `farm_fruit_growth_cycles` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`fruit_item_id` bigint(20) unsigned NOT NULL COMMENT '果实物品ID',
`sprout_time` int(10) unsigned NOT NULL COMMENT '发芽期时间(秒)',
`growth_time` int(10) unsigned NOT NULL COMMENT '成长期时间(秒)',
`mature_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '成熟期时间(秒,0表示无限)',
`wither_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '枯萎期时间(秒,0表示无限)',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_fruit_item_id` (`fruit_item_id`),
KEY `idx_sprout_time` (`sprout_time`),
KEY `idx_growth_time` (`growth_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='果实生长周期配置表';
存储种子的多种可能产出及其概率。
CREATE TABLE `farm_seed_outputs` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`seed_id` bigint(20) unsigned NOT NULL COMMENT '种子ID',
`item_id` bigint(20) unsigned NOT NULL COMMENT '产出物品ID',
`min_amount` int(10) unsigned NOT NULL COMMENT '最小产出数量',
`max_amount` int(10) unsigned NOT NULL COMMENT '最大产出数量',
`probability` decimal(5,4) NOT NULL COMMENT '产出概率(0-1)',
`is_default` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否为默认产出',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_seed_id` (`seed_id`),
KEY `idx_item_id` (`item_id`),
KEY `idx_probability` (`probability`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='种子产出配置表';
存储不同房屋等级的配置信息。
CREATE TABLE `farm_house_configs` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`level` tinyint(3) unsigned NOT NULL COMMENT '等级',
`output_bonus` decimal(5,2) NOT NULL DEFAULT '0.00' COMMENT '产出加成',
`special_land_limit` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '特殊土地上限',
`upgrade_materials` json NOT NULL COMMENT '升级所需材料',
`downgrade_days` int(10) unsigned DEFAULT NULL COMMENT '降级天数,NULL表示不降级',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_level` (`level`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='房屋等级配置表';
存储不同土地类型的属性,如产量加成、灾害抵抗等。
CREATE TABLE `farm_land_types` (
`id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT COMMENT '土地类型ID',
`name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '土地类型名称',
`code` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '土地类型编码',
`output_bonus` decimal(5,2) NOT NULL DEFAULT '0.00' COMMENT '产量加成',
`disaster_resistance` decimal(5,2) NOT NULL DEFAULT '0.00' COMMENT '灾害抵抗',
`unlock_house_level` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '解锁所需房屋等级',
`is_special` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否为特殊土地',
`icon` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '图标路径',
`description` text COLLATE utf8mb4_unicode_ci COMMENT '描述',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_code` (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='土地类型配置表';
存储土地升级路径和所需材料。
CREATE TABLE `farm_land_upgrade_configs` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`from_type_id` tinyint(3) unsigned NOT NULL COMMENT '起始土地类型ID',
`to_type_id` tinyint(3) unsigned NOT NULL COMMENT '目标土地类型ID',
`materials` json NOT NULL COMMENT '升级所需材料',
`conditions` json DEFAULT NULL COMMENT '其他升级条件',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_from_to` (`from_type_id`,`to_type_id`),
KEY `idx_from_type` (`from_type_id`),
KEY `idx_to_type` (`to_type_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='土地升级配置表';
记录作物收获的历史数据。
CREATE TABLE `farm_harvest_logs` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`land_id` bigint(20) unsigned NOT NULL COMMENT '土地ID',
`crop_id` bigint(20) unsigned NOT NULL COMMENT '作物ID',
`seed_id` bigint(20) unsigned NOT NULL COMMENT '种子ID',
`output_amount` int(10) unsigned NOT NULL COMMENT '产出数量',
`harvest_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '收获时间',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_harvest_time` (`harvest_time`),
KEY `idx_seed_id` (`seed_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='收获记录表';
记录土地和房屋升级的历史数据。
CREATE TABLE `farm_upgrade_logs` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`upgrade_type` tinyint(3) unsigned NOT NULL COMMENT '升级类型:1土地,2房屋',
`target_id` bigint(20) unsigned DEFAULT NULL COMMENT '目标ID(土地ID)',
`old_level` tinyint(3) unsigned NOT NULL COMMENT '旧等级/类型',
`new_level` tinyint(3) unsigned NOT NULL COMMENT '新等级/类型',
`materials_consumed` json NOT NULL COMMENT '消耗的材料',
`upgrade_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '升级时间',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_upgrade_time` (`upgrade_time`),
KEY `idx_upgrade_type` (`upgrade_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='升级记录表';
farm_users (1) ------ (N) farm_land_users
| |
| |
| |
| |
v v
farm_house_configs farm_crops
|
|
|
v
farm_seeds
|
|
v
farm_harvest_logs
farm_land_types <---- farm_land_users
^
|
v
farm_land_upgrade_configs
所有表都使用自增的id字段作为主键。
farm_users: user_id(确保每个用户只有一条农场记录)farm_lands: user_id, position(确保每个用户的土地位置唯一)farm_crops: land_id(确保一块土地只有一个作物)farm_house_configs: level(确保等级唯一)farm_land_types: code(确保土地类型编码唯一)farm_land_upgrade_configs: from_type_id, to_type_id(确保升级路径唯一)farm_users: house_level, last_upgrade_timefarm_lands: user_id, status, land_typefarm_crops: user_id, seed_id, growth_stage, stage_end_timefarm_seeds: typefarm_land_types: is_special, unlock_house_levelfarm_land_upgrade_configs: from_type_id, to_type_idfarm_harvest_logs: user_id, harvest_time, seed_idfarm_upgrade_logs: user_id, upgrade_time, upgrade_type{
"disasters": [
{
"type": 1,
"occurred_at": "2023-05-01 12:00:00"
},
{
"type": 3,
"occurred_at": "2023-05-01 14:30:00"
}
]
}
{
"materials": [
{"item_id": 1001, "amount": 20},
{"item_id": 1002, "amount": 10}
]
}
{
"drought": 0.1,
"pest": 0.05,
"weed": 0.15
}
{
"icon": "seed_icon_001.png",
"color": "#FF5500",
"description": "一种生长迅速的萝卜种子,适合新手种植。"
}
{
"house_level_min": 7,
"special_land_check": true,
"user_level_min": 10,
"quest_completed": [101, 102],
"time_limited": {
"start_time": "2023-01-01 00:00:00",
"end_time": "2023-12-31 23:59:59"
}
}
灾害JSON存储在作物表的disasters字段中,记录作物当前遭受的所有灾害:
{
"disasters": [
{
"type": 1, // 灾害类型:1干旱,2虫害,3杂草
"occurred_at": "2023-05-01 12:00:00", // 灾害发生时间
"impact": 0.05, // 灾害影响程度(减产比例)
"status": 1 // 灾害状态:1未处理,2已处理
},
{
"type": 3,
"occurred_at": "2023-05-01 14:30:00",
"impact": 0.05,
"status": 1
}
]
}
初始化基本的种子数据,包括普通种子、神秘种子和巨化种子。
INSERT INTO `farm_seeds` (`id`, `name`, `type`, `seed_time`, `sprout_time`, `growth_time`, `min_output`, `max_output`, `item_id`, `disaster_resistance`) VALUES
(1, '萝卜种子', 1, 1800, 3600, 7200, 1000, 1500, 2001, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
(2, '辣椒种子', 1, 3600, 7200, 14400, 1500, 2000, 2002, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
(3, '苹果种子', 1, 7200, 14400, 28800, 2000, 2500, 2003, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
(4, '西瓜种子', 1, 10800, 21600, 43200, 2500, 3000, 2004, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
(5, '草莓种子', 1, 14400, 28800, 57600, 3000, 3500, 2005, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
(6, '南瓜种子', 1, 18000, 36000, 72000, 3500, 4000, 2006, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
(7, '核桃种子', 1, 21600, 43200, 86400, 4000, 4500, 2007, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
(8, '可可种子', 1, 25200, 50400, 100800, 4500, 5000, 2008, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
(9, '人参种子', 1, 28800, 57600, 115200, 5000, 5500, 2009, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
(10, '玫瑰种子', 1, 32400, 64800, 129600, 5500, 6000, 2010, '{"drought": 0.05, "pest": 0.05, "weed": 0.05}'),
(11, '神秘种子', 2, 0, 0, 0, 0, 0, 2011, NULL),
(101, '巨化草莓种子', 3, 14400, 28800, 57600, 4500, 5250, 2101, '{"drought": 0.1, "pest": 0.1, "weed": 0.1}'),
(102, '巨化南瓜种子', 3, 18000, 36000, 72000, 5250, 6000, 2102, '{"drought": 0.1, "pest": 0.1, "weed": 0.1}'),
(103, '巨化核桃种子', 3, 21600, 43200, 86400, 6000, 6750, 2103, '{"drought": 0.1, "pest": 0.1, "weed": 0.1}'),
(104, '巨化可可种子', 3, 25200, 50400, 100800, 6750, 7500, 2104, '{"drought": 0.1, "pest": 0.1, "weed": 0.1}'),
(105, '巨化人参种子', 3, 28800, 57600, 115200, 7500, 8250, 2105, '{"drought": 0.1, "pest": 0.1, "weed": 0.1}'),
(106, '巨化玫瑰种子', 3, 32400, 64800, 129600, 8250, 9000, 2106, '{"drought": 0.1, "pest": 0.1, "weed": 0.1}');
初始化12级房屋的配置数据,包括产出加成、特殊土地上限、升级材料和降级天数。
INSERT INTO `farm_house_configs` (`level`, `output_bonus`, `special_land_limit`, `upgrade_materials`, `downgrade_days`) VALUES
(1, 0.00, 0, '{"materials": [{"item_id": 1001, "amount": 20}]}', NULL),
(2, 0.05, 0, '{"materials": [{"item_id": 1001, "amount": 30}, {"item_id": 1002, "amount": 10}]}', 7),
(3, 0.10, 0, '{"materials": [{"item_id": 1001, "amount": 40}, {"item_id": 1002, "amount": 20}]}', 7),
(4, 0.15, 0, '{"materials": [{"item_id": 1001, "amount": 50}, {"item_id": 1002, "amount": 30}, {"item_id": 1003, "amount": 5}]}', 7),
(5, 0.20, 0, '{"materials": [{"item_id": 1001, "amount": 60}, {"item_id": 1002, "amount": 40}, {"item_id": 1003, "amount": 10}]}', 7),
(6, 0.25, 0, '{"materials": [{"item_id": 1001, "amount": 70}, {"item_id": 1002, "amount": 50}, {"item_id": 1003, "amount": 15}]}', 7),
(7, 0.30, 2, '{"materials": [{"item_id": 1001, "amount": 80}, {"item_id": 1002, "amount": 60}, {"item_id": 1003, "amount": 20}, {"item_id": 1004, "amount": 5}]}', 7),
(8, 0.35, 4, '{"materials": [{"item_id": 1001, "amount": 90}, {"item_id": 1002, "amount": 70}, {"item_id": 1003, "amount": 25}, {"item_id": 1004, "amount": 10}]}', 7),
(9, 0.40, 6, '{"materials": [{"item_id": 1001, "amount": 100}, {"item_id": 1002, "amount": 80}, {"item_id": 1003, "amount": 30}, {"item_id": 1004, "amount": 15}]}', 7),
(10, 0.45, 8, '{"materials": [{"item_id": 1001, "amount": 120}, {"item_id": 1002, "amount": 90}, {"item_id": 1003, "amount": 35}, {"item_id": 1004, "amount": 20}]}', 7),
(11, 0.50, 10, '{"materials": [{"item_id": 1001, "amount": 140}, {"item_id": 1002, "amount": 100}, {"item_id": 1003, "amount": 40}, {"item_id": 1004, "amount": 25}]}', 7),
(12, 0.60, 12, '{"materials": [{"item_id": 1001, "amount": 160}, {"item_id": 1002, "amount": 120}, {"item_id": 1003, "amount": 50}, {"item_id": 1004, "amount": 30}]}', NULL);
其中物品ID对应关系:
初始化土地类型配置数据:
INSERT INTO `farm_land_types` (`id`, `name`, `code`, `output_bonus`, `disaster_resistance`, `unlock_house_level`, `is_special`) VALUES
(1, '普通土地', 'NORMAL', 0.00, 0.00, 1, 0),
(2, '红土地', 'RED', 0.10, 0.05, 1, 0),
(3, '黑土地', 'BLACK', 0.25, 0.10, 1, 0),
(4, '金色特殊土地', 'GOLD', 0.50, 0.15, 7, 1),
(5, '蓝色特殊土地', 'BLUE', 0.40, 0.25, 7, 1),
(6, '紫色特殊土地', 'PURPLE', 0.60, 0.10, 7, 1);
初始化土地升级配置数据:
INSERT INTO `farm_land_upgrade_configs` (`from_type_id`, `to_type_id`, `materials`, `conditions`) VALUES
(1, 2, '{"materials": [{"item_id": 1001, "amount": 10}]}', NULL),
(2, 3, '{"materials": [{"item_id": 1002, "amount": 10}]}', NULL),
(3, 4, '{"materials": [{"item_id": 1003, "amount": 10}, {"item_id": 1004, "amount": 5}]}', '{"house_level_min": 7, "special_land_check": true}'),
(3, 5, '{"materials": [{"item_id": 1003, "amount": 10}, {"item_id": 1004, "amount": 5}]}', '{"house_level_min": 7, "special_land_check": true}'),
(3, 6, '{"materials": [{"item_id": 1003, "amount": 10}, {"item_id": 1004, "amount": 5}]}', '{"house_level_min": 7, "special_land_check": true}');
其中物品ID对应关系:
新用户注册时,需要:
定期备份关键数据表,特别是配置表和用户数据表。
当用户数量增长到一定规模时,可以考虑按用户ID范围对farm_lands、farm_crops和farm_harvest_logs表进行分表。
使用批量插入和更新操作处理大量数据,如批量更新作物生长状态。
-- 萝卜种子的多种可能产出
INSERT INTO `farm_seed_outputs` (`seed_id`, `item_id`, `min_amount`, `max_amount`, `probability`, `is_default`) VALUES
(1, 3001, 1000, 1500, 0.7000, 1), -- 70%概率产出普通萝卜
(1, 3101, 800, 1200, 0.2000, 0), -- 20%概率产出小型萝卜
(1, 3201, 1500, 2000, 0.1000, 0); -- 10%概率产出大型萝卜
-- 辣椒种子的多种可能产出
INSERT INTO `farm_seed_outputs` (`seed_id`, `item_id`, `min_amount`, `max_amount`, `probability`, `is_default`) VALUES
(2, 3002, 1500, 2000, 0.8000, 1), -- 80%概率产出普通辣椒
(2, 3202, 2000, 2500, 0.2000, 0); -- 20%概率产出特级辣椒
-- 神秘种子的多种可能产出
INSERT INTO `farm_seed_outputs` (`seed_id`, `item_id`, `min_amount`, `max_amount`, `probability`, `is_default`) VALUES
(11, 3001, 1000, 1500, 0.2000, 0), -- 20%概率产出萝卜
(11, 3002, 1500, 2000, 0.2000, 0), -- 20%概率产出辣椒
(11, 3003, 2000, 2500, 0.2000, 0), -- 20%概率产出苹果
(11, 3004, 2500, 3000, 0.2000, 0), -- 20%概率产出西瓜
(11, 3099, 5000, 10000, 0.2000, 1); -- 20%概率产出稀有物品
| ID | 名称 | 种子期(秒) | 发芽期(秒) | 生长期(秒) | 最小产出 | 最大产出 |
|---|---|---|---|---|---|---|
| 1 | 萝卜种子 | 1800 | 3600 | 7200 | 1000 | 1500 |
| 2 | 辣椒种子 | 3600 | 7200 | 14400 | 1500 | 2000 |
| 3 | 苹果种子 | 7200 | 14400 | 28800 | 2000 | 2500 |
| 4 | 西瓜种子 | 10800 | 21600 | 43200 | 2500 | 3000 |
| 5 | 草莓种子 | 14400 | 28800 | 57600 | 3000 | 3500 |
| 6 | 南瓜种子 | 18000 | 36000 | 72000 | 3500 | 4000 |
| 7 | 核桃种子 | 21600 | 43200 | 86400 | 4000 | 4500 |
| 8 | 可可种子 | 25200 | 50400 | 100800 | 4500 | 5000 |
| 9 | 人参种子 | 28800 | 57600 | 115200 | 5000 | 5500 |
| 10 | 玫瑰种子 | 32400 | 64800 | 129600 | 5500 | 6000 |
| ID | 名称 | 对应普通种子 | 产量倍率 |
|---|---|---|---|
| 101 | 巨化草莓种子 | 草莓种子 | 1.5 |
| 102 | 巨化南瓜种子 | 南瓜种子 | 1.5 |
| 103 | 巨化核桃种子 | 核桃种子 | 1.5 |
| 104 | 巨化可可种子 | 可可种子 | 1.5 |
| 105 | 巨化人参种子 | 人参种子 | 1.5 |
| 106 | 巨化玫瑰种子 | 玫瑰种子 | 1.5 |
| 加持类型 | 值 | 效果描述 | 应用场景 |
|---|---|---|---|
| 丰收之神 | 1 | 确保收获时获得最高产量 | 收获作物时直接使用种子的最大产量值 |
| 雨露之神 | 2 | 防止干旱灾害 | 生成灾害时不会生成干旱类型的灾害 |
| 屠草之神 | 3 | 防止杂草灾害 | 生成灾害时不会生成杂草类型的灾害 |
| 拭虫之神 | 4 | 防止虫害灾害 | 生成灾害时不会生成虫害类型的灾害 |