这种链式关联是否会导致性能问题?

时间:2014-11-14 01:59:12

标签: ruby-on-rails activerecord

在Message模型中,我有这个功能:

  def set_phone_number_for_customer!
    unless self.customer.phone_number
      self.customer.set_phone_number
      self.customer.increment_customer_counter
      if self.customer.save
        self.customer.buy_another_phone_number
      end
    end
  end

customers has_many messages
messages have_one customer
customers have_one phone_number
phone_numbers have_many customers

此方法在每个Message上被调用为before_save。我担心像“self.customer.phone_number”这样的链接关联会导致性能问题,因为消息创建是我应用程序上最常见的操作。有没有更有效的方法来做我正在寻找的东西?我想也许我可以直接将phone_number与消息关联,但是当即将创建消息时,我们不知道它是否还有一个关联的phone_number(这就是该方法的要点)。

谢谢!

0 个答案:

没有答案