ラテ、ロングブラック、フラットホワイト、エスプレッソ、アメリカーノなどのメインアイテムを持つ食品注文システムがあります。各アイテムは次のようにDBに保存されます。
*不要な列が欠落しているデータベース
+----+----------------+-------------+
| id | item_name | price |
+----+----------------+-------------+
| 1 | latte | 2.0000 |
+----+----------------+-------------+
| 2 | long black | 2.5000 |
+----+----------------+-------------+
| 3 | flat white | 3.0000 |
+----+----------------+-------------+
| 4 | americano | 2.0000 |
+----+----------------+-------------+
各アイテムにサブオプションを追加する必要がありますが、各アイテムには独自のオプション セットがあります。たとえばamericano
、ミルク タイプ、砂糖タイプがあります。フラットホワイトにもミルクタイプがありますが、アメリカーノにはミルクオプションが必要ない場合があるため、別のメニューにする必要があるため、別のサブメニューがあります. 例えば。
Flat white milk menu
+----+----------------+------------+
| id | item_name | submenu_id |
+----+----------------+------------+
| 1 | soy | 1 |
+----+----------------+------------+
| 2 | rice | 1 |
+----+----------------+------------+
| 3 | regular | 1 |
+----+----------------+------------+
| 4 | trim | 1 |
+----+----------------+------------+
americano milk menu
+----+----------------+------------+
| id | item_name | submenu_id |
+----+----------------+------------+
| 5 | soy | 2 |
+----+----------------+------------+
| 6 | rice | 2 |
+----+----------------+------------+
| 7 | regular | 2 |
+----+----------------+------------+
| 8 | trim | 2 |
+----+----------------+------------+
| 9 | no Milk | 2 |
+----+----------------+------------+
それから砂糖などの一般的なアイテムがあるかもしれません...
sugar
+----+----------------+------------+
| id | item_name | submenu_id |
+----+----------------+------------+
| 10 | Sugar | 3 |
+----+----------------+------------+
| 11 | no Sugar | 3 |
+----+----------------+------------+
階層をDBに保存する最良の方法は何ですか? たとえば、flat white には1,3
americano が必要とする値が必要2,3
です。より多くのオプションを必要とするものには、同じ種類のシステムが必要になる場合があります。これらを引き出して、各サブオプションを JavaScript でロードできるようにする必要があります。