2014-04-01 41 views
0

我們正在開發一款應用程序,可將數據本地存儲在手機,服務器上並在用戶之間共享。每個用戶存儲和檢索數據的訪問權限大約爲20次,主要由字符串組成。該應用程序將跨平臺Android/iOS。所以在開始開發DB之前,你建議Json vs SQlite或者使用HTTP方法:GET,POST。 每種產品的優點和缺點是什麼,你有什麼建議。更適合Android/iOS開發的Json VS SQLite

+2

您將需要所有這些:使用GET請求獲取JSON數據,然後將這些對象持久存儲在SQLite數據庫中。請注意,JSON不是數據庫;並且詢問_「Json vs Sqlite或使用HTTP方法:GET,POST」_根本沒有多大意義:那些是彼此無法替代的正交概念。但是,您可以使用XML而不是JSON,或者使用其他持久性存儲而不是SQLite,或者使用TCP而不是HTTP使用某種自定義協議。 – CouchDeveloper

回答

2

我不同意sql很慢。這不是像這些設備使用旋轉磁盤。在我的應用程序中,我實現了一個將JSON數據傳回的RESTful API。這很容易,因爲在iOS上,json可以輕鬆轉換爲iOS Native NSDictionary對象。

我建議使用sqlite或核心數據來存儲數據,因爲如果您需要查詢數據,以後會很高興。這就是數據庫的用途,可以輕鬆存儲和檢索數據。

作爲替代方案,您還可以考慮在服務器上構建SQLite數據庫,並將該文件實際下載到設備。這有它的好處,因爲你不需要在設備上進行實際的sqlite處理。

我建議遠離XML,不是因爲它不好,而是因爲傳回JSON數據已成爲標準,而且許多大公司正在從XML格式轉移,因爲需要處理能力。

在設計您的RESTful API時,使用已經可用的HTTP請求方法總是一個好習慣。使用GET檢索數據,POST以創建新數據,使用PUT更新數據並使用DELETE刪除數據。一旦你有一個設計精美的REST api,所有事情都應該落實到位,並且你將擁有一個可在客戶端和服務器端維護和擴展的應用程序。

1

這個問題真的取決於你自己的專業領域。如果你對JSON有很好的理解,那就使用它。 XML是另一種通過SOAP(或REST)將數據分發到您的平臺,服務器 - >設備 - >服務器的好方法。我自己的經驗是,使用GZIP的JSON很小且很快,並且存在很多快速的解析器。 XML有其不利之處,就是它迅速變大,但隨着時間的推移,通常會更容易維護,因爲語法是在XML的「名稱空間」中設置的。 SQLite速度很慢,因爲它的磁盤基於磁盤而且只能用於數據的持久存儲。在運行時儘可能少地訪問它。我的建議:服務器/設備上的JSON + GZIP,REST-api,儘可能多地存儲在設備的內存中,SQLite用於設備上的持久存儲,最後是服務器上的MySQL,用於持久存儲(免費,如果視圖和方法)。

但正如所說的,這完全取決於實施。