Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel-数据库结构更改-这是否是一个好的做法?_Php_Mysql_Database_Laravel_Tinker - Fatal编程技术网

Php Laravel-数据库结构更改-这是否是一个好的做法?

Php Laravel-数据库结构更改-这是否是一个好的做法?,php,mysql,database,laravel,tinker,Php,Mysql,Database,Laravel,Tinker,你好,你好吗?我想问你谁比我更有经验,我想做的是一个好的还是坏的做法,拉雷维尔 我正在制作一个订购应用程序,在我的数据库中,我发现一个产品有一定的价格(产品表中还有一个字段)。但后来我意识到,当某一天产品的价格发生变化时,旧订单中的价格也会发生变化,也就是说,旧订单将在此时而不是在下订单日期采用产品的新价格,从而产生信息问题 为此,我决定创建一个包含临时价格的新表,也就是说,如果价格发生变化,将在数据库中创建一个新行,其中包含某个日期的价格,但会记录另一个日期中的价格。日期 现在,我的问题是。。

你好,你好吗?我想问你谁比我更有经验,我想做的是一个好的还是坏的做法,拉雷维尔

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

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

现在,我的问题是。。。在没有用户干预的情况下,我如何将产品的当前价格带到我正在创建的新表中。。。也就是说,将每个产品的所有价格迁移到新表中。 我的想法是创建一个函数,该函数遍历每个产品,并在prices表中创建一个新行,其中包含产品id、价格和当前日期。一旦创建了这个函数,通过Tinker运行它,用户不会完全注意到什么,而是系统采用了新的价格结构

这个好吗? 这是一个好的做法还是有更好的方法


谢谢。

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


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

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


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

太棒了!我会尝试你的建议,非常感谢马克西,你好。太好了!我会试试你的建议,非常感谢马西,问候你。