所以,情况是这样的:
我有一个名为 invoice 的表,它有一个名为 invoice # 的列,每次将其保存到数据库之前,我都必须生成一个复杂的发票编号。此外,我还有另一个名为 invoice_item 的表,它将存储一堆项目。每个项目还有一个名为 invoice # 的列,用于声明该项目属于哪个发票。一张发票中的物品数量没有限制。
现在,我有两种策略来实现这一目标:
我有一个名为 generateCode() 的函数来返回随机发票#。我会把它放在application_controller.rb中,并且每次我们尝试插入新发票时,invoice_controller中的“create”方法都会生成一个新的发票#,并将值传递给属于该发票的所有invoice_items .
我将使用 ActiveRecord 回调函数:after_initialize,因此,当我们尝试新建一个发票实例时,也会创建发票#,并且很容易将值传递给项目列表。
似乎第二种方式有更多的逻辑,但它是否有可能导致性能问题?并且在大多数电子商务网站中,用户最有可能在提交购物清单后得到他们的发票#。所以我想知道做这类问题的典型方法是什么,更重要的是,为什么?
谢谢