2017-09-23 51 views
0

我正在構建倉庫應用程序。我想查看位置/指數中每個位置的當前庫存數據(補貨 - 銷售)。現在我在模型中進行了計算,但是每次加載位置/索引頁面時都需要很長時間才能計算出來。Rails倉庫應用程序

什麼是最好的方式來組織表格來堅持數據庫中的股票數據,並且每次打開頁面時都不會重新計算所有內容?

這裏是我的架構: enter image description here

我的想法是新增股票股票表創建一個補貨/出售時會在後臺重新計算。我如何設置它?

回答

0

顯然這沒有一個正確的方法。但這是我的要求。

你可以有一個一到一個locationstock和的has_many之間:通過stockproduct之間。您可能想要在此處獲取價格/成本,因爲在不同時間不同的product可能有不同的價格,所以您需要使用連接表。這樣你可以計算出正確的價格/成本。 (如果它是相關的,您可能需要將cost添加到product)。同樣,我認爲您需要在補貨時將cost列添加到replenishment以捕獲成本,並且需要price列到sale以捕獲銷售時的價格。

0

這是非常簡單的,可能有錯誤,因爲我沒有測試過它。

class Stock < ApplicationRecord 
    belongs_to :product 
    belongs_to :location 
end 

class Product < ApplicationRecord 
    has_many :stocks 

    #product stock in all locations 
    def total_stock 
    stocks.sum(:quantity) 
    end 
end 

class Location < ApplicationRecord 
    has_many :stocks 

    #stock of all products in this location 
    def total_stock 
    stocks.sum(:quantity) 
    end 
end 

class Sale < ApplicationRecord 
    belongs_to :stock 
end 

class Replenishment < ApplicationRecord 
    belongs_to :stock 
end 

您必須在每次創建,修改或刪除銷售或補貨時更新庫存模型中的數量。或者您可以有後臺工作定期更新數量。

您可以在位置和產品模型中執行相同的操作。您可以添加數量屬性並在每次銷售或補貨後對其進行更新,或者使用後臺工作。在這種情況下,您不需要「total_stock」方法。