在Rails應用程序,說我有以下型號:緩存不經常更改的'詞典'表和最佳實踐是更好嗎?
class Movies < ActiveRecord::Base
has_many :movie_genres
has_many :genres, through: :movie_genres
end
class Genres < ActiveRecord::Base
has_many :movie_genres
has_many :movies, through: :movie_genres
end
class MovieGenre < ActiveRecord::Base
belongs_to :movies
belongs_to :genres
end
流派表無非是id
和label
領域更多。在許多應用程序視圖和biz邏輯方法之間,我將需要非常頻繁地查找給定流派的id
,但實際數據將極少改變。
在應用程序加載時只執行一次數據庫調用並將信息存儲到內存中是否有意義?
如果是的話,對此有什麼好的做法? Genre
中的類變量?在初始化程序中設置全局變量?我知道如果在genres
表上有一個事務,我將需要設置一個鉤子來重建這個內存存儲。
這個問題是在考慮縮放問題時提出的,其中genres
只是許多查詢式數據庫表格中的一個,查詢式數據庫表格中數據頻繁變化但頻率高的查找。
你問的緩存失效是計算機科學中唯一兩個難題之一:) –