1

你好吗?我想问你谁比我有更多的经验,我想做的是在 Laravel 中做的好还是坏的做法。

我正在制作一个订购应用程序,并且在我的数据库中我有一个产品具有一定的价格(产品表中的另一个字段)。但后来我意识到,当产品的价格某一天发生变化时,旧订单中的价格也会发生变化,即旧订单会采用产品此时此刻的新价格,而不是下单的日期。被放置,从而产生了一个信息问题。

为此,我决定创建一个包含临时价格的新表,也就是说,如果价格发生变化,则在数据库中创建一个新行,其中包含某个日期的价格,但另一个价格为记录下来。日期。

现在,我的问题是……如何在没有用户干预的情况下将产品的当前价格带到我正在创建的新表中……也就是说,将每种产品的所有价格迁移到该新表中。我的想法是创建一个遍历每个产品的函数,并在价格表中创建一个新行,其中包含产品 ID、价格和当前日期。创建此功能后,通过 Tinker 运行它,用户不会注意到任何内容,但系统采用了新的价格结构。

这个好?这是一个好习惯还是有更好的方法来做到这一点?

谢谢你。

4

1 回答 1

0

欢迎来到!这是一种可能的方法来获得包含价格历史记录的表格。有效期的开始和结束日期。为了不使向用户显示他的订单历史的查询过于复杂,我建议您也将产品的价格保存在订单中。例如在订单和产品的多对多映射表中,您还可以保存购买产品的数量。

您可以创建一个 CLI 命令(例如php artisan make:command InsertOrderPrices),然后在创建旧订单后为旧订单填写这些字段。

于 2020-07-17T16:34:20.377 回答