我开发了一个使用Laravel5/MySQL构建的基于订阅的应用程序。我正在处理从MySQL获取发票。在每张发票上,我们都要显示“前一个余额”,“付款”,“本月费用”,“应付到期日”,“应付日期后付款”等几列。 现在“上一个余额”是“上一个余额” - “付款”+“本月费用”中的“上一个发票的到期日”。 因此,这里开始递归并且将继续,直到db中的所有记录都被获取。这也适用于单张发票。但是当我尝试取多个(100〜200)服务器时会耗尽内存。用一张约13k的发票表。处理MySQL/PHP中的递归
作为对此问题的修复,我在发票生成更新此列时向表“payments_by_due_date”添加了一个新列。 更改并更新所有记录后,我尝试使用~1000个发票,并花费3〜4秒钟获取所有记录,为所有发票制作PDF并将它们全部打包到一个zip文件中,并将该zip文件移交给用户下载。
但是,这种方法存在很大问题,如果将来的任何发票需要更正,那么在特定发票之后生成的所有发票都需要手动更新。
所以,如果你们中的任何人都可以帮我解决这个问题,我会很感激。
也许我错过了,但问题在哪里? – Jhecht
@Jhecht每张发票都是指引发递归的“以前的发票”,有什么适当的方法来处理MySQL中的递归? –
嗯,有趣的问题。老实说,从来没有这样的东西弹出。我的第一个倾向是创建一个名为'previous_balance'的列,我可能会在创建后附加到触发器。这将查找以前的账单 - 付款并将其插入行中。我只是不觉得在所有时间点上都需要将它们联系起来。他们要么偿还了以前的账单,要么他们没有。 – Jhecht