2015-04-28 79 views
-1

如果我需要在MySQL數據庫上存儲一些數據,我應該先將它存儲在SQLite上,然後將Android上的SQLite同步到MySQL數據庫中?
我是否需要SQLite才能在MySQL數據庫上存儲一些數據

是否可以將數據存儲到MySQL數據庫而無需SQLite?如果是,有什麼更好的選擇? (使用SQLite或沒有它)

更新
我需要的MySQL becase的我想PERSON1能夠看到PERSON2的數據,如果PERSON2的數據存儲在SQLite的,這是不可能,因爲它會坐在person2的 Android設備上。我是對的嗎?

+0

當你有一個稱爲'SQLite'的非常輕量級的數據庫時,爲什麼要在'MySQL'中存儲數據? – TheLostMind

+0

據我所知,你不能在Android手機上擁有MySQL數據庫。我也沒有看到任何好處。 – Lamorak

+0

@thelostmind我更新了我的問題,請看看。 – Loua

回答

2

問題是你想把你的數據庫放在哪裏?如果在應用程序中,那麼除了SQLite之外別無選擇。

如果它是非應用程序,那麼可能性是無限的。您肯定可以運行您自己的服務器和MySql數據庫。例如,如果您使用Amazon AWS提供的雲解決方案,則甚至不需要安裝服務器,因爲它們具有允許應用程序直接與數據庫通信的SDK。

同步策略取決於您的應用程序。也許它不是必需的,你的應用程序可以根據需要向你的數據庫發送查詢。我的經驗法則是我拒絕在客戶端或應用程序中設置數據庫。爲什麼?因爲一旦它在那裏,修改它並不容易。此外,它是在設置的擺佈 - >清除數據或卸載。

如果你想做你的編輯說,那麼你需要做的應用程序外。您需要一箇中央數據庫來收集所有安裝的數據並允許他們進行查詢。我需要強調的是,如果它不是應用程序,它不需要是MySql。 MySql只是一種關係數據庫系統。您可以使用無模式系統(或NoSql),文件存儲(如果數據是文件)等,這些都取決於許多考慮因素。

+0

我更新了我的問題,請查看。 – Loua

+0

好的我回答了你的編輯 – inmyth

1

Android僅支持將位於Android設備上的應用程序中的SQLite數據庫。

如果你想使用MySQL數據庫,你將需要創建一個API,它將坐在互聯網上的某個服務器上。這個API將創建一個從應用程序到MySQL數據庫的接口。然後,您需要通過Android應用程序與您的API進行網絡通話。

有很多使用API​​模型的選項,所以你需要做一些Google搜索並找出最適合你的選項。

編輯

要回答你的問題,編輯,你一定會需要有使用API​​的設計模式。如果你正在創建一個需要從多個設備訪問的服務,那麼這通常是一條路。使用API​​的好處是可以跨平臺使用它們。因此,您不僅可以在Android設備上使用它,還可以通過網絡,IOS應用程序等使用它。

一個簡單而典型的架構讓你走是因爲你有一個Android應用程序將通過HTTP將網絡調用發送到網絡上的API。該API將坐在可能在那裏存儲MySQL數據庫的服務器上。該API將驗證您的用戶並執行所需的方法,可能會執行一些數據庫查詢。一旦API獲得結果,它就會將其發送回Android應用程序,並將其解析並顯示給用戶。

這是一個很大的話題,所以你真的需要對這個問題做一些研究。

+0

我更新了我的問題,請看看。 – Loua

0

Android不支持MySQL來保存應用程序數據,你可以在developer.android website.

看到提到雖然,你不能強迫使用SQLite數據庫能夠與其他的RDBMS comunicate。您可以看到這個example,,它顯示瞭如何使用JSON,PHP和HTTP請求從遠程MySQL數據庫檢索數據記錄。我想你也可以看看ContentProviders。它們通常與SQLite一起使用,但我認爲它可以與其他RDBMS一起使用。

+0

我更新了我的問題,請看看。 – Loua

+0

如果pearson1和2指的是2個不同的移動終端,並且它們必須能夠從comun數據庫中檢索寄存器,則它們必須被連接到comun數據庫(一個存儲在服務器上的數據庫,而不是其中一款手機)。無論服務器上有什麼類型的RDBMS(MySQL,SQLite,Oracle,Access ...),使用你感覺更舒適的那種,當檢索數據時只需將它放入java Collections Object(例如:HashMap >,其中key是數據庫中的主鍵,restant屬性轉到ArrayList。 – iusting

相關問題