销售点数据库设计(逐项和捆绑)

时间:2014-04-01 14:29:00

标签: mysql

我想知道如何以最有效的方式为这个数据库实现表格?我在数据库设计方面仍然很陌生,并希望就此问题提出建议。

我有一个用于存储订单的表 - 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

有没有更好的方法来实现数据库中的表集? 非常感谢任何建议!谢谢!

0 个答案:

没有答案