📋 表结构信息
| 字段名 | 数据类型 | 约束 | 默认值 | 注释 |
|---|---|---|---|---|
| id | int | PRIMARY KEY, AUTO_INCREMENT | - | 主键ID |
| dish_id | int | NOT NULL, FOREIGN KEY | 0 | 关联菜品ID(可选) |
| name | varchar(100) | NOT NULL | - | 配料名称 |
| amount | decimal(10,2) | NULL | NULL | 用量 |
| unit | varchar(20) | NULL | NULL | 单位 |
| note | varchar(200) | NULL | NULL | 描述 |
| category | varchar(100) | NOT NULL | - | 分类 |
| subcategory | varchar(100) | NULL | NULL | 子分类 |
| created_at | timestamp | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | timestamp | NOT NULL | CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
| dish_name | varchar(100) | NULL | NULL | 菜品名称 |
| ingredient_specs_id | int | NULL | NULL | 关联食材规格ID |
🔗 表关系
外键关系
dish_id 字段作为外键,关联到 dishes 表的 id 字段
CONSTRAINT: dish_ingredients_ibfk_1 FOREIGN KEY (dish_id) REFERENCES dishes (id) ON DELETE CASCADE
级联删除: 当 dishes 表中的记录被删除时,相关的配料记录也会被自动删除
索引信息
dish_id - 菜品ID索引,用于快速查询菜品配料信息
💾 建表SQL
CREATE TABLE `dish_ingredients` (
`id` int NOT NULL AUTO_INCREMENT,
`dish_id` int NOT NULL DEFAULT '0' COMMENT '关联菜品ID(可选)',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '配料名称',
`amount` decimal(10,2) DEFAULT NULL COMMENT '用量',
`unit` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '单位',
`note` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '描述',
`category` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分类',
`subcategory` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`dish_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '菜品名称',
`ingredient_specs_id` int DEFAULT NULL COMMENT '关联食材规格ID',
PRIMARY KEY (`id`),
KEY `dish_id` (`dish_id`),
CONSTRAINT `dish_ingredients_ibfk_1` FOREIGN KEY (`dish_id`) REFERENCES `dishes` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1443 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
📝 业务说明
dish_ingredients 表是菜品配料管理的核心表,提供完整的配料信息管理:
- 支持精确的配料用量管理(decimal类型,支持小数点后两位)
- 完整的单位系统,支持各种计量单位
- 多级分类管理(分类和子分类)
- 通过 dish_id 外键关联到 dishes 表,建立菜品与配料的关联关系
- 支持级联删除,确保数据一致性
- ingredient_specs_id 字段预留用于关联食材规格表
- 自动维护创建和更新时间