🗄️ LDFood 数据库文档

LDFood 系统的数据库设计、表结构、关系图和数据字典说明

← 返回文档中心

📊 查询目的

查询每天每个餐段出产什么菜品

记录每日餐段(早中晚)的菜品安排

查询每天每个套餐配的什么菜品

每日各 套餐名(农博动力,元气小厨等) 下的菜品

查询做生产次序出品计划用

查某天某餐段,还有哪些出品菜可选,也就是出品的菜,是一个个调配入各餐段

查询做套餐组合用

查某天某个套餐,还有哪些出品的菜可选入套餐

📋 数据表结构

表名 建表目的 字段说明 主要字段 详细文档
菜品基础表 (dishes) 菜品数据的基础字典 主要存储菜品名称,分类(荤素菜等)、口味、加工厨具,作者信息,图片资料,文字说明,收藏记录,点赞数,评分,本月排名,推广相关信息 id(主键), name(菜品名称), category(分类), taste(口味), author(作者), likes(点赞数), rating(评分), image(图片), description(说明), favorites(收藏), rank(排名), promotion(推广) 查看详情
食材基础表 (ingredients) 食材数据的基础字典 名称 各 食材大小类(肉蛋鱼等) id(主键), type(分类), name(名称), created_at(创建时间), updated_at(更新时间) 查看详情
食材规格表 (ingredient_specs) 食材规格标准库 对应给菜品的食材加工规格尺寸 id(主键), name(食材名称), unit(单位), type(分类), code(规格编码), status(状态), note(备注), created_at(创建时间), updated_at(更新时间), ingredient(食材名), ingredient_id(关联食材ID) 查看详情
菜品配料表 (dish_ingredients) 菜品配料关系的基础字典 菜品的配料和分类(荤素等) id(主键), dish_id(菜品ID), name(名称), amount(用量), unit(单位), category(分类) 查看详情
每日菜品表 (daily_dishes) 记录每日餐段菜品 记录每日餐段(早中晚)的菜品安排 id(主键), meal_type(餐次), dish_name(菜品名), dish_id(菜品ID), menu_date(菜单日期) 查看详情
每日菜单表 (daily_menu) 按套餐名的里面在菜品 每日各 套餐名(农博动力,元气小厨等) 下的菜品 id(主键), menu_id(菜单ID), meal_type(餐次), dish_category(菜品分类), dish_id(菜品ID), combo_name(套餐名) 查看详情

🔗 表关系网络图

dishes

菜品基础表

ingredients

食材基础表

ingredient_specs

食材规格表

dish_ingredients

菜品配料表

外键关联
外键关联
数据关联
外键关联
数据关联
基础表 (dishes, ingredients, ingredient_specs, dish_ingredients)
菜单表 (daily_menu, daily_dishes)

🔍 查表方案

查询一:某天各餐段出品

使用表: daily_dishes

查询SQL:

SELECT menu_date, meal_type, dish_name 
FROM daily_dishes 
WHERE menu_date = '2024-01-15' 
ORDER BY meal_type, dish_name;

查询二:团餐社餐录菜

使用表: daily_menu, dishes

查询SQL:

SELECT menu_date, combo_name, dish_name 
FROM daily_menu dm
JOIN dishes d ON dm.dish_id = d.id
WHERE menu_date = '2024-01-15' 
ORDER BY combo_name, dish_name;

查询三:录入菜品查重或新增

使用表: dishes

查询SQL:

-- 查重逻辑
SELECT id, name, category, taste 
FROM dishes 
WHERE name = '新菜品名称' 
AND category = '菜品分类' 
AND taste = '口味';

-- 新增逻辑(如果查重无结果)
INSERT INTO dishes (name, category, taste, created_at) 
VALUES ('新菜品名称', '菜品分类', '口味', NOW());

说明:每天新录入的菜品要在菜品库里进行查重,有的直接引用,没有的要新增

查询四:套餐和出品的差别菜品列表

使用表: daily_dishes, daily_menu

查询SQL:

-- 查询某天某套餐未选入的出品菜品
SELECT dd.dish_id, dd.dish_name, dd.meal_type
FROM daily_dishes dd
LEFT JOIN daily_menu dm ON dd.dish_id = dm.dish_id 
AND dd.menu_date = dm.menu_date 
AND dm.combo_name = '农博动力'
WHERE dd.menu_date = '2024-01-15' 
AND dm.dish_id IS NULL
ORDER BY dd.meal_type, dd.dish_name;

说明:出品可组合多个套餐,往往多于套餐,返回有多少未选入本套餐的菜品