我正在开发一个咖啡订购应用程序,其中有3个不同的表
- 具有字段
id
、item_name
的main_menu
,例如Cafe、Pizza bar、Breakfast等 - 字段为
id
、sub_item_name
、item_name
、price
的sub_menu
,例如售价2.00美元的柴拿铁 - 字段为
id
、sub_item_type
、sub_item_name
、item_name
、add_price
的sub_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_id
、item_name
、sub_item_name
和total_price
。每一行可以在sub_item_name
字段中包含多个逗号分隔的项目。(您可以使用PHP代码轻松地构建这些代码)。main_menu
、sub_menu
和sub_type
表格应用于向客户提供菜单和附加组件选项。不需要将menu
表与order
表耦合。
使用此模式,您将只为每个订单执行一次插入。同样的订单也会提供给厨房工作人员,而无需加入或分组任何其他桌子。
这行得通吗?