-- 餐桌预定系统数据库建表脚本(基于现有包厢表结构修改) -- 1. 修改现有包厢信息表,添加餐桌相关字段 ALTER TABLE `boxes_info` ADD COLUMN `table_number` varchar(50) DEFAULT NULL COMMENT '餐桌编号' AFTER `name`, ADD COLUMN `table_type` int DEFAULT NULL COMMENT '餐桌类型 1-小桌(2-4人) 2-中桌(4-6人) 3-大桌(6-8人) 4-包间(8人以上)' AFTER `status`, ADD UNIQUE KEY `uk_table_number` (`table_number`); -- 2. 修改现有包厢可用时间段表,添加餐次类型字段 ALTER TABLE `boxes_availability` ADD COLUMN `meal_type` int DEFAULT NULL COMMENT '餐次类型 1-早餐 2-中餐 3-晚餐' AFTER `bx_date`, ADD COLUMN `meal_name` varchar(50) DEFAULT NULL COMMENT '餐次名称' AFTER `meal_type`, ADD KEY `idx_meal_type` (`meal_type`); -- 3. 修改现有包厢预约记录表,添加餐次类型和预约人数字段 ALTER TABLE `boxes_booking` ADD COLUMN `meal_type` int DEFAULT NULL COMMENT '餐次类型 1-早餐 2-中餐 3-晚餐' AFTER `status`, ADD COLUMN `people_count` int DEFAULT NULL COMMENT '预约人数' AFTER `meal_type`, ADD COLUMN `remark` varchar(500) DEFAULT NULL COMMENT '备注信息' AFTER `people_count`, ADD KEY `idx_meal_type` (`meal_type`); -- 4. 创建时间段配置表(新增) CREATE TABLE `time_slot_config` ( `id` bigint NOT NULL COMMENT '主键id', `meal_type` int NOT NULL COMMENT '餐次类型 1-早餐 2-中餐 3-晚餐', `meal_name` varchar(50) NOT NULL COMMENT '餐次名称', `start_time` time NOT NULL COMMENT '开始时间', `end_time` time NOT NULL COMMENT '结束时间', `time_slot_name` varchar(100) DEFAULT NULL COMMENT '时间段名称', `is_enabled` int NOT NULL DEFAULT '1' COMMENT '是否启用 0-禁用 1-启用', `sort` int DEFAULT '0' COMMENT '排序', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `dept_id` bigint DEFAULT NULL COMMENT '部门id', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` char(1) DEFAULT '0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_meal_type` (`meal_type`), KEY `idx_is_enabled` (`is_enabled`) ) COMMENT='时间段配置表'; -- 插入默认时间段配置数据 INSERT INTO `time_slot_config` (`id`, `meal_type`, `meal_name`, `start_time`, `end_time`, `time_slot_name`, `is_enabled`, `sort`, `remark`, `create_time`) VALUES (1, 1, '早餐', '07:00:00', '09:00:00', '早餐时段', 1, 1, '早餐时间段', NOW()), (2, 2, '中餐', '11:30:00', '13:30:00', '中餐时段', 1, 2, '中餐时间段', NOW()), (3, 3, '晚餐', '17:30:00', '19:30:00', '晚餐时段', 1, 3, '晚餐时间段', NOW()); -- 更新现有包厢信息为餐桌信息(示例) UPDATE `boxes_info` SET `name` = CONCAT('餐桌', `name`), `table_number` = CONCAT('T', LPAD(id, 3, '0')), `table_type` = CASE WHEN `capacity` <= 4 THEN 1 WHEN `capacity` <= 6 THEN 2 WHEN `capacity` <= 8 THEN 3 ELSE 4 END WHERE `table_number` IS NULL; -- 更新表注释 ALTER TABLE `boxes_info` COMMENT = '餐桌信息表'; ALTER TABLE `boxes_availability` COMMENT = '餐桌可用时间段表'; ALTER TABLE `boxes_booking` COMMENT = '餐桌预约记录表';