【发布时间】:2012-05-29 21:35:31
【问题描述】:
我的 rails 程序中有 4 个数据库,产品、产品、产品和订单
样品产品:中型套件
Medium Kit 包含 2 个产品(这是在 OfferingProduct 数据库中设置的) 1 小 2 中等
客户订购 2 个中号套件
此程序应占此订单中的 2 个小型和 4 个中型以及许多类似的订单
我正在尝试建立一个库存系统来跟踪每周售出的每种产品的数量,以便我可以重新订购产品。要计算这个,我有:
def get_trend
product = Product.first
customer_orders =[]
product.offerings.each do |o|
customer_orders = customer_orders + o.orders
end
o=customer_orders.group_by { |t| t.date.beginning_of_week }
y = []
op=self.offering_products;
o.sort.each do |week, orders|
y << orders.map { |o| o.quantity*op.find_by_offering_id(o.offering).quantity }.sum
end
return y
end
这似乎可行,但计算大约需要 20 秒。有什么办法可以让这更快吗?我知道大部分时间都花在了
y << orders.map { |o| o.quantity*op.find_by_offering_id(o.offering).quantity }.sum
计算给定一周内订购的产品数量的行。有什么想法吗?
【问题讨论】:
-
你真的使用单独的数据库还是单独的表?
标签: ruby-on-rails ruby performance inventory foreach