在单个食品订单中表示多个菜肴的最佳数据结构/数据库模式是什么?

时间:2015-06-23 11:21:19

标签: mysql database logic schema

我能想到的选项。

  1. 子订单,按订单列出每个菜肴的数量,主要订单表格带有FK
  2. 订单表中的json表示,其中包含订单中各个菜肴的详细信息
  3. 预先计算所有可能的菜肴组合并存储在表格中,然后在订单表格中使用对该表格的引用。
  4. 这些中最好的选择是什么?还有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

目前尚不清楚是否要永久存储这些内容。

在记忆中,我有一张地图。 食物订单作为关键和存储菜肴的清单。 然后,我有两个查找表;一个用于食品订单,一个用于餐具。

在数据库中,我有类似的东西。 | FoodOrderId | Dish0Id | Dish1Id | Dish0Id | 再次,您将需要两个进一步的查找表。 使用此选项的限制是订单只能包含有限数量的菜肴。

如果限制菜肴的数量,则包含的订单是一个showstopper,您可以将订单存储在XML中;

<FoodOrder>
<ID =##>
<DishId>#</DishId>
<DishId>#</DishId>
<DishId>#</DishId>
</FoodOrder>

然后,您可以将XML字符串放入数据库进行存储。