最好是(1)根據用例緩存表中的記錄,或者(2)完整的對象圖,或者(3)多個部分對象圖?緩存什麼對象?
讓我澄清: 假設我有一個訂單系統與工作流程。它包含以下對象:Order,OrderLine,Items,Customer,Workplan,Phase,Milestone,Activities等。
(1)我可以將Order表中的所有記錄放入緩存中,並將OrderLines表中的所有記錄放入緩存,以及Items表中的所有記錄存入緩存等。可能是一個可怕的想法,因爲你無法很好地查詢緩存。 (2)我可以將Order對象,包括OrderLines,OrderItems,Customer,Workplan,Phases,Milestones等放入緩存中。我不喜歡這樣,因爲如果有些事情在Orderlines,Orderitems,Items,Customer,PHases,Milestones等中發生了變化,我必須更新緩存的Order對象。另一件事是我不知道緩存的對象有多大一個Order與10或15個其他對象有關係,並且這些對象都被加載到緩存的Order中。 (3)我可以將對象分割成一個Orderdetails和一個wokrflow的一部分。這樣我有一個緩存的訂單對象與所有相關的訂單詳細信息。我還有另一個Cached Order對象,其中包含所有相關的工作流程詳細信息。
你們對緩存這些東西有什麼建議嗎?
(我希望這是明確的,否則請讓我知道)
您正在編寫您的應用程序的哪種語言? – 2011-05-22 15:06:34
我在C#中編寫應用程序並使用實體框架進行數據訪問 – Thomas 2011-05-22 15:07:54
您可能會發現,在Linq上投入一些時間減少了查詢緩存的難度 – 2011-05-22 15:09:37