如何用MySQL代表产品制成的产品?嵌套集还是其他任何东西?

时间:2016-05-24 04:15:36

标签: php mysql database laravel

我正在创建一个管理快餐店的网络应用程序,我需要涵盖这种情况:商店有其他产品和单品的产品。

示例:我卖1个汉堡(面包,牛肉和奶酪)和1罐苏打水。

我需要从库存中折出1个面包,200克牛肉,50克奶酪和1罐苏打水。我正在使用表格来解决这个问题:

1)产品(汉堡包,苏打水和任何​​其他“可销售”产品),也存储库存量,

2)成分(面包,牛肉,奶酪等),也存储库存量,

3)ingredients_products(associative)。还存储产品中的成分数量。

当我需要注册“购买”时,问题就来了。因为在一次购买中我可以有单品(10罐苏打水)和配料(10公斤奶酪),我需要确定每件产品是否是产品或成分,以增加库存量。

看起来树木或嵌套套装无济于事,因为一种产品可用于多种产品,例如:奶酪可用于比萨饼,汉堡包和其他餐食。

有任何解决此问题的建议吗?

1 个答案:

答案 0 :(得分:0)

如果产品代表您的想法,那么对于业务逻辑和前端代表来说都会非常复杂。我宁愿保持简单。

每个销售商品将表示为单个商品(唯一SKU)。

e.g:

  • 奶酪,它将有500克,1000克和2000克包装。因此,在单次购买中,您可以扣除5 x 2000g奶酪的库存。所以“2000g奶酪”的产品扣除了5。

    出现在数据库表

    奶酪500克

    • product_name:Cheese 500g
    • sku:cheese_500g
    • 数量:20

    奶酪1000克

    • product_name:Cheese 1000g
    • sku:cheese_1000g
    • 数量:10
  • 可以更容易地喝苏打水。它们是预包装,因此在您的系统中,您将获得此类产品的单一记录

    • product_name:Soda 330ml
    • sku:soda_330ml
    • 数量:500
  • 披萨

    • product_name:披萨
    • sku:pizza
    • 数量:5