📋 表结构信息
| 字段名 | 数据类型 | 约束 | 默认值 | 注释 |
|---|---|---|---|---|
| id | int | PRIMARY KEY, AUTO_INCREMENT | - | 主键ID |
| category | varchar(50) | NOT NULL | - | 大类 |
| subcategory | varchar(50) | NULL | NULL | 小类 |
| name | varchar(100) | NOT NULL | - | 菜名 |
| taste | varchar(50) | NULL | NULL | 口味 |
| equipment | varchar(100) | NULL | NULL | 厨具 |
| created_at | timestamp | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | timestamp | NOT NULL | CURRENT_TIMESTAMP ON UPDATE | 更新时间 |
| author | varchar(30) | NULL | NULL | 作者名称 |
| author_id | int | NULL | NULL | 作者ID |
| description | text | NULL | NULL | 菜品说明 |
| image_url | varchar(255) | NULL | NULL | 图片URL |
| likes | int | NULL | 0 | 点赞数 |
| favorites | int | NULL | 0 | 收藏数 |
| views | int | NULL | 0 | 浏览量 |
| rating | int | NULL | 1 | 评分 |
| review | text | NULL | NULL | 评价内容 |
| monthly_rank | int | NULL | NULL | 月度排名 |
| promotion_status | enum('Normal','Featured','Trending') | NULL | 'Normal' | 推广状态 |
| promotion_start | datetime | NULL | NULL | 推广开始时间 |
| promotion_end | datetime | NULL | NULL | 推广结束时间 |
🔗 表关系
主键关系
id 字段作为主键,被以下表引用:
- daily_menu.dish_id - 外键约束
- dish_ingredients.dish_id - 外键约束(级联删除)
索引信息
idx_author_id - 作者ID索引,用于快速查询作者相关的菜品
💾 建表SQL
CREATE TABLE `dishes` (
`id` int NOT NULL AUTO_INCREMENT,
`category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '澶х被',
`subcategory` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '灏忕被',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '鑿滃悕',
`taste` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '鍙e懗',
`equipment` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '鍘ㄥ叿',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`author` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '作者名称',
`author_id` int DEFAULT NULL COMMENT '作者ID',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '菜品说明',
`image_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '图片URL',
`likes` int DEFAULT '0',
`favorites` int DEFAULT '0',
`views` int DEFAULT '0',
`rating` int DEFAULT '1',
`review` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`monthly_rank` int DEFAULT NULL,
`promotion_status` enum('Normal','Featured','Trending') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT 'Normal',
`promotion_start` datetime DEFAULT NULL,
`promotion_end` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_author_id` (`author_id`)
) ENGINE=InnoDB AUTO_INCREMENT=528 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
📝 业务说明
dishes 表是系统的核心表之一,存储了所有菜品的基础信息:
- 支持多级分类(大类、小类)
- 包含完整的菜品属性(口味、厨具、描述等)
- 支持作者信息和用户互动数据(点赞、收藏、浏览)
- 具备推广功能,支持不同推广状态和时间控制
- 自动维护创建和更新时间