2012-04-27 144 views
0

我正在構建一個類似Trivial的應用程序。這只是一個問題和圖片的集合。什麼時候應該使用數據庫?

我正在設計它,所以它會保留所有的問題,答案和圖像在數據庫上。

這是可取的嗎?

什麼時候應該使用數據庫,何時只是資源文件夾?

你將如何實現這一點?

謝謝。

+0

你是指SQLite數據庫還是帶有數據庫的外部服務器?或者,如果您不知道 - 您希望在那裏有多少個問題/圖片?或多或少 - 50/500/50000? – 2012-04-27 11:28:07

+0

我的意思是SQLite。我最初考慮的是500個左右的問題 – eskalera 2012-04-27 11:36:17

回答

2

資源文件夾也是一個數據庫。爲了縮小問題的位數,重點是將數據保存在結構化或非結構化數據存儲中。根據經驗,結構化數據存儲提供了索引,搜索數據分析等的一些好處。現在你認爲你只是收集數據,但後來發現自己想要爲它添加一些屬性,增強數據模型等等。從編程角度來看,我沒有看到作爲文件夾的數據存儲和數據存儲之間的許多差異作爲數據庫。但是可用性和後處理有很大差異。在一天結束時,它只是API調用。因此,我的建議是使用數據庫,我認爲Android API帶有sqlite,在數據庫中存儲問題,文件可能在數據庫或資源文件夾中使用數據庫中的指針。

+0

謝謝@羅伯特,我有這個確切的疑問,是否db給了某種「壓縮」。但我想它沒有,T。我有點害怕必須在BLOBS中存儲圖像,所以我將在資源上使用文件名稱來查找db上的文本引用。你同意? – eskalera 2012-04-27 11:53:56

+0

取決於。不需要害怕使用BLOBS,並且可以在其周圍進行壓縮,但將它們保存爲參考可以幫助更直接地在某些UC中使用圖像。例如,網絡應用可以直接從該目錄加載picures。所以是在第一次迭代中,我會去目錄aproach。如果不適合,打開數據庫非常容易。 Poit是用結構化數據庫數據開始設計的。 – Robert 2012-04-27 12:08:32

+0

資源文件夾不是數據庫。這些是原始的xml文件,並且比SQLite慢得多。 – 2012-04-27 12:11:55

1

在我看來,如果應用程序應該是可擴展的(新的問題/新功能/ ......後來加入)的數據庫是一個最好的解決辦法...

如果它只是一個小/快速應用程序,你只會更新一次,然後你可以保持簡單,並使用簡單的文本文件或其他東西...

編輯:因爲我讀了你想要有大約500個問題,你應該真的去一個數據庫,你可以後來總是添加屬性和東西,排序的東西(如難度)和東西很容易與數據庫...去數據庫我會說!

+1

數據庫將允許您輕鬆地在數據之間執行復雜的操作,在這裏就不是這種情況。但是對於可維護性和易用性來說,數據庫應該更好。 – shkschneider 2012-04-27 11:33:33

+0

我可能想根據未來的答案添加「難度級別」等字段。 – eskalera 2012-04-27 11:38:37

+0

@Ferdau如果使用文本文件,我會如何將問題鏈接到圖像? – eskalera 2012-04-27 11:41:02

3

如果您有500個問題,並且對於您計劃擁有圖像的每個問題,我都會考慮使用外部服務器爲您提供數據。這樣你將有一個輕量級的應用程序,只會下載你需要的問題。您可以將下載的內容存儲在本地數據庫中。此外,您可以通過這種方式輕鬆保持您的應用程序的最新狀態。

這就是說,如果你想在資源和SQLite之間進行選擇,請使用SQLite。它快得多。你不應該把圖像放在數據庫中(我認爲它甚至不可能在SQLite中),但是在那裏保留對它們的引用(文件名),並將實際的圖像保存在SD卡上。

+0

完整答案,thx @ Michal-k!我也是這麼想的,但那時應用程序需要連接到互聯網。我可能會爲未來而努力。把sqlite中的圖像保存爲blob怎麼樣? – eskalera 2012-04-27 11:57:02

+0

Blob(特別是像SQLite這樣輕量級的東西)可以用來存儲圖像,但會讓整個數據庫變慢。據我所知,這被認爲是不好的做法,除非這些是非常小的斑點,圖標或類似的東西。 只是關於下載的說明。你有沒有考慮將你的問題分成幾個章節或類似的東西?您可以允許用戶下載整章。但這取決於你想要建立什麼樣的應用程序(我不知道「微不足道」)。 – 2012-04-27 12:10:31

相關問題