You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优化膳食规划应用的DB Schema以提升查询性能?

膳食规划应用数据库设计问题

我正在为一款膳食规划应用设计数据库Schema。每个膳食计划由多个阶段块组成(如2个月减脂期、2个月增肌期),每个阶段块包含每日餐食,每顿餐食由多种食物构成。

我设计了规范化的DB Schema,但如果要获取完整膳食计划及其分析数据,查询需要关联超过6张表(MealProgram > MealProgramBlock > DayMeal > DayMealFood > FoodOnDayMealFood > Food > FoodNutrient > Nutrient),这可能在未来导致应用性能下降。然而我暂未找到替代方案。

我了解NoSQL适用于此类场景,但当需要更新特定营养素或食物信息时,需修改所有相关记录,因此不考虑采用NoSQL。

当前DB Schema

Table User {
  id varchar [primary key]
}

Table Food {
  id varchar [primary key]
  name String
}

Table FoodNutrient {
  foodId varchar [ref: > Food.id]
  nutrientId varchar [ref: > Nutrient.id]
  amount integer
}

Table Nutrient {
  id varchar [primary key]
  name varchar
  unitName String
}

Table MealProgram {
  id varchar [primary key]
  name varchar
  authorId varchar [ref: > User.id]
  customerId varchar [ref: > User.id]
}

Table MealProgramBlock {
  id varchar [primary key]
  name varchar
  programId varchar [ref: > MealProgram.id]
}

Table DayMeal {
  id varchar [primary key]
  blockId varchar [ref: > MealProgramBlock.id]
  name varchar
  day integer
  time varchar
}

Table DayMealFood {
  id varchar [primary key]
  dayMealId varchar [ref: > DayMeal.id]
}

Table FoodOnDayMealFood {
  id varchar [primary key]
  dayMealFoodId varchar [ref: > DayMealFood.id]
  foodId varchar [ref: > Food.id]
  weight integer
  unit varchar
}

DB Schema示意图

DB Schema示意图

内容的提问来源于stack exchange,提问作者Honza Sedloň

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 17:07:49