2010-05-01 30 views

回答

5

如果您的應用程序已經需要一個數據庫,爲什麼要在其他地方保存數據?

如果列表沒有變化(每次安裝)並且它相當小且經常使用,那麼在初始化時讀取一次並緩存結果以提高性能並減少數據庫負載可能是值得的。

1

您可以開箱即用地查詢和檢索各種查詢,與訪問其他任何數據的方式相同。數據庫像今天的平面文件一樣便宜,但你得到全面的服務。

0

如果它幾乎是一個靜態列表,那麼您可以將其存儲在數據庫或文件中,但將其保存在內存中以供使用。換句話說,無論是從數據庫還是文件加載一次。你不想做的是繼續加載它。特別是如果你在大多數頁面瀏覽中使用它。如果你有大量的訪問者,那麼這些小小的時間就會加起來。

另一方面,當然是,如果你發現自己做這個大列表或很多很多小列表。然後你可能會遇到記憶太多的問題。

比爾蜥蜴是正確的關於它是重要的是否列表鏈接到其他表。如果是這樣,那麼如果你需要包含它的查詢,你將需要它在數據庫中。

+0

不準確 - 請參閱我的答案中鏈接的數據源。它將允許您將模型與數組數據相關聯,並在靜態數組數據上運行查詢或基本模型。 – 2010-05-05 23:29:12

+0

好點。我應該說,如果你需要在數據庫中查詢它們。如果你不需要在數據庫本身做關係,那麼你是正確的。我現在主要使用.Net工作,你的方法與Linq類似。它可以將內存中的數據結構與db查詢關聯起來。在這兩種情況下,關係都發生在應用程序級別,而不是在數據庫中。這對於很多應用程序來說都很棒,但有些需要在數據庫級別具有關係的視圖,存儲過程等。你走哪條路取決於項目的細節。 – jeffa00 2010-05-07 17:59:59

1

我看到這個問題已經有了答案接受 - 我還是想附和我的$ 0.02

我通常對靜態數據的陣列(國家列表,時區列表中,可以使用enum類型不變套做的方法對於...)就是使用這個數組數據源。

它允許您映射數據庫模型和基於數組的模型之間的關係,並使用通常的查找語法/可關聯關係。

http://github.com/jrbasso/array_datasource

相關問題