php - 购买具有不同购买价格和到期日期的产品的最佳方式是什么?

标签 php algorithm logic inventory stock

我正在使用 PHP、Mysql 开发库存系统。该系统有购买模块来添加/更新/增加产品的数量和到期日期,以及销售模块来减少/减少产品的数量。

现在让我感到困惑的是什么,我真正的问题是

  • 假设我们的库存中有产品 A1,数量为 20,价格为 我们购买产品 A1 时的价格是 15 美元。
  • 现在我们想要增加此产品的库存,例如,我们想再购买 100 件产品 A1,但现在产品 A1 的新价格是 18 美元。

将这些项目分开的最佳方法/逻辑是什么,以了解在销售页面上以 15 美元的价格和 18 美元的新价格购买了多少产品。

  1. 我是否必须在数据库中存储 2 个或更多数量列?

  2. 我是否应该在我的数据库中多次存储相同的产品?

Currently I'm generating average of $15 and $18 then adding this value as purchase price of product.

最佳答案

哦,亲爱的,你的问题表明你真的处于数据库设计的开始阶段。您应该在这么早的阶段解决如此复杂的问题吗?嗯,是的,为什么不...

您问题的答案是:1. 不!!! 2. 也许吧。

第一个想法很愚蠢。想想看。如果您获得一种产品的三种不同价格,那么您将需要三列,依此类推……这不是一个好主意。

第二个选项似乎是一个不错的解决方案。您有一排 20 件商品,价格为 15 美元,另一排 100 件商品,价格为 18 美元。你可以用这个做大部分事情。平均价格?那么:(20*15 + 100*18)/(20 + 100)。简单的。但它很快变得更加复杂。如果您向客户出售 110 件商品怎么办?您将需要更改两行,但是如何更改?第一行 20 项,第二行 90 项?或者从第二个开始全部 100 个,从第一个开始全部 10 个。你不能忽视这个问题,你必须就如何做到这一点制定严格的规则。而且您会发现,随着您添加到系统中的选项越来越多,复杂性会不断增加。它会起作用,但它会不屈不挠。

然而,您还没有提到第三个选项:在您的表中为每件库存商品单独占一行。这似乎是对数据库空间的浪费,但坚持下去,它确实简化了事情。平均价格?很简单,只需计算包含价格的列的平均价格。即使每件商品都有不同的价格,它也会同样复杂。从库存中提取元素的规则也很简单:只需使用 FIFO 或 FILO 系统。

所以最后一个解决方案显然是可行的方法。

关于php - 购买具有不同购买价格和到期日期的产品的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28373292/

相关文章:

php - 将自定义 php.ini 传递给 phpunit

PHP:读取大文件中的特定行(无需逐行读取)

algorithm - 生成不在一组数字 N 中的随机数 R 的最佳算法

Python - 计算形式 1/r 总和为 1 的 k 个分数的算法

c++ - 降低 o(n^3) c++ 代码的复杂性

c++ - 如何计算大数的位数? C++

php - FPDF-SetFillColor

php - 有没有一种方法可以像在数据库中使用 WHERE LIKE sql 一样使用 Zend Search Lucene?

c++ - 关于如何使用此代码段实现 SFINAE 的问题

php - 动态合并数组的算法