Mysql 在一份食品订单中表示多个菜肴的最佳数据结构/数据库模式是什么?
我能想到的选择Mysql 在一份食品订单中表示多个菜肴的最佳数据结构/数据库模式是什么?,mysql,database,logic,schema,Mysql,Database,Logic,Schema,我能想到的选择 子表,列出订单中的每道菜及其数量,并在主订单表中添加FK 订单表中的json表示形式,包含订单中各个菜肴的详细信息 预先计算所有可能的菜肴组合并储存在表格中,然后在订单表格中引用该表格 其中哪一个是最好的选择?有没有更好的解决办法 不清楚您是否要永久存储这些 在记忆中,我会有一张地图。 食物顺序是关键,是储存菜肴的清单。 然后我会有两个查找表;一个用于点菜,一个用于点菜 在数据库中,我会有类似的东西。 |FoodOrderId | Dish0Id | Dish1Id | Dish
其中哪一个是最好的选择?有没有更好的解决办法 不清楚您是否要永久存储这些 在记忆中,我会有一张地图。 食物顺序是关键,是储存菜肴的清单。 然后我会有两个查找表;一个用于点菜,一个用于点菜 在数据库中,我会有类似的东西。 |FoodOrderId | Dish0Id | Dish1Id | Dish0Id| 同样,您还需要两个进一步的查找表。 此选项的限制是订单只能包含有限数量的菜肴 如果限制一道菜的数量和包含的内容是一个限制,那么您可以将该菜存储在XML中
<FoodOrder>
<ID =##>
<DishId>#</DishId>
<DishId>#</DishId>
<DishId>#</DishId>
</FoodOrder>
#
#
#
然后,您可以将XML字符串放入数据库中进行存储。一次订购的菜肴数量没有限制。如果它是一个数据库模式,将其放在xml中是否会限制查询功能。。比如想查找在他们点的菜中点了某道菜的用户?还想知道最好的解决方案是否存在于NoSql模式中?您将能够在SQL表中通过xml进行搜索。看,如果可以的话,我也不建议走无模式的道路。显然,这取决于数据的输入方式。例如,如果你有一个像JustEat这样的应用程序,你应该可以很容易地管理信息的一致性。如果您正在读取历史非结构化数据,则可能会有点不同。尝试验证输入,而不是使用大数据世界中使用的数据质量解决方案。