📋 表结构信息
💡 重要业务规则
未存库菜品验证:在保存数据到daily_dishes表时,系统会检查是否存在未存库菜品(即dish_id为空的菜品)。
保存限制:如果存在未存库菜品,系统将禁止保存操作,确保保存到daily_dishes表的数据都是已存在于dishes表中的有效菜品。
前端标识:未存库菜品在前端界面中会以绿色边框标识,已存库菜品以黄色边框标识。
| 字段名 | 数据类型 | 作用 | 默认值 | 注释 |
|---|---|---|---|---|
| id | int | PRIMARY KEY, AUTO_INCREMENT | - | 主键ID |
| meal_type | varchar(100) | 早,中,晚餐 | - | 餐次类型 |
| dish_name | varchar(100) | 菜品名,和dishes库表关联 | - | 菜品名称 |
| dish_id | int | 和dishes.id关联 | - | 菜品ID |
| menu_date | int | 出品日期 | - | 菜单日期 |
| created_at | datetime | NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | NULL | CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
🔗 表关系
关联关系
dish_id 字段关联到 dishes 表的 id 字段,用于获取菜品详细信息
业务逻辑
此表用于记录每日菜单的菜品安排,通过 menu_date 字段区分不同日期的菜单
💾 建表SQL
CREATE TABLE `daily_dishes` (
`id` int NOT NULL AUTO_INCREMENT,
`meal_type` varchar(100) COLLATE utf8mb4_general_ci NOT NULL,
`dish_name` varchar(100) COLLATE utf8mb4_general_ci NOT NULL,
`dish_id` int NOT NULL,
`menu_date` int NOT NULL,
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
📝 业务说明
daily_dishes 表用于管理每日菜单的菜品安排:
- 记录不同餐次(早餐、午餐、晚餐)的菜品安排
- 通过 dish_id 关联到 dishes 表获取菜品详细信息
- menu_date 字段用于区分不同日期的菜单
- 支持菜品名称的冗余存储,便于快速查询
- 自动维护创建和更新时间