2015-04-28 78 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

相关问题