如何在表中一起插入和显示分组数据


How to insert and display grouped data together in a table

我正在开发一个咖啡订购应用程序,其中有3个不同的表

  1. 具有字段iditem_namemain_menu,例如Cafe、Pizza bar、Breakfast等
  2. 字段为idsub_item_nameitem_namepricesub_menu,例如售价2.00美元的柴拿铁
  3. 字段为idsub_item_typesub_item_nameitem_nameadd_pricesub_type,例如大容量柴拿铁(+0.50美元)和豆浆(+0.50加元),因此总价为3.00美元

我感到困惑的是,用户在订购时可能会选择多个sub_type,就像上面的例子一样,他可能想要额外的牛奶和尺寸升级。所以,当我将订单插入数据库时,当用户选择sub_type时,我是否必须运行两次插入查询?或者有没有任何方法可以在单个查询中完成?

当我在厨房一侧显示数据时,同样的事情是:我如何将sub_type分组并显示在同一行,这样咖啡机就不会感到困惑,并很容易知道这是相同的订单和额外的订单?

我在咖啡点餐端使用android,在厨房端显示使用php我需要在php表中显示结果,比如这个

    +----------+-------------+---------------------+------------+
    | Order No |Item_name    |Sub_Item_Name        |Total Price |
    +----------+-------------+---------------------+------------+
    |145       |Chai Latte   |Soy Milk,Large Size  | $3.00      |
    |          |             |  Extra Sugar        |            |
    +-----------------------------------------------------------+
    |146       |Black Tea    |Regular Size,No      | $2.50      |
    |          |             |Sugar                |            |
    +-----------------------------------------------------------+
    |147       |Espresso     |Skin Milk,Small Size | $3.50      |
    |          |             |                     |            |
    +-----------------------------------------------------------+

在我看来,在不试图使事情过于复杂的情况下,订单应该进入一个单独的order表,其中包含您刚才指定的字段,即order_iditem_namesub_item_nametotal_price。每一行可以在sub_item_name字段中包含多个逗号分隔的项目。(您可以使用PHP代码轻松地构建这些代码)。main_menusub_menusub_type表格应用于向客户提供菜单和附加组件选项。不需要将menu表与order表耦合。

使用此模式,您将只为每个订单执行一次插入。同样的订单也会提供给厨房工作人员,而无需加入或分组任何其他桌子。

这行得通吗?