我想知道如何以最有效的方式为这个数据库实现表格?我在数据库设计方面仍然很陌生,并希望就此问题提出建议。
我有一个用于存储订单的表 - tbl_orders(我省略了该表的唯一ID)
oid | pid
--------+----------+
501 1
501 2
501 3
我有一张存放ala-carte产品的表 - tbl_products
pid | description | amount
----+-----------------------+-----------+
1 Burger 5.40
2 Fries (S) 2.20
3 Cola (S) 2.00
另一种捆绑餐 - tbl_bundles
bid | description
----+-----------------------+
1 FISH BURGER MEAL
另一张表详细列出了每个捆绑餐中的内容 - tbl_bundleDetails
bdid | bundle_id | description | amount
-----+--------------+-------------+---------+
1 1 Burger 5.40
2 1 Fries (S) 2.20
3 1 Cola (S) 2.00
所以我们的想法是捆绑包是由多个项目组合而成。我目前的方法是,当用户选择捆绑包时,对tbl_BundleDetails中的记录进行过滤,以过滤掉该特定捆绑包的ID,并选择这些记录并将其复制到订单表中。
即。用户订购FISH BURGER MEAL(出价:1),因此使用bundle_id = 1的tbl_BundleDetails中的所有记录都是重复的'进入订单表。
最重要的是,如果用户需要额外的alacarte项目,这些单独的记录也会直接(单独)复制到订单表中。
因此,假设用户订购2份FISH汉堡餐(记录为oid 501) - 还有一份额外的薯条alacarte,下面将是表格的结果。通过Ala Carte或Bundle订购会产生相同的逐项输出。
oid | pid
--------+----------+
501 1 \
501 2 } INSERT VIA BUNDLE FISH BURGER #1
501 3 /
501 1 \
501 2 } INSERT VIA BUNDLE FISH BURGER #2
501 3 /
501 2 - Ala Carte Addition of Fries
有没有更好的方法来实现数据库中的表集? 非常感谢任何建议!谢谢!