我是开发Android应用程序的新手,我决定是否在我的应用程序中使用SQLite或MySQL。
我仍然对SQLite是什么以及它是如何工作感到困惑。请原谅我的noob问题。
据我了解,SQLite是本地存储和无服务器。我的应用需要注册用户帐户,因此我不确定SQLite是否可以使用。我的意思是,如何使用SQLite在本地存储用户帐户信息?假设我有3个用户注册,每个用户是否只在他们的手机上存储他们的用户名和密码?因此,每个用户都会看到"用户名"的不同值。和#34;密码"在他们的本地数据库?由于没有集中式数据库,这是否意味着我因为开发人员无权访问任何用户'因为所有信息都存储在用户的本地信息中。手机而不是服务器?为什么SQLite甚至有用呢?
答案 0 :(得分:4)
为什么SQLite甚至有用呢?
计算机一直使用本地文件。
例如,您可能使用Web浏览器访问此站点并询问您的问题。该程序在本地存储大量内容:cookie,缓存数据,浏览历史记录等。计算机上的许多其他程序在本地存储文件。
文件的数据以某种结构组织。 XML,JSON,CSV,Markdown(即用于Stack Overflow问题和答案的wikitext语言),以及无数其他文件格式。程序员通常使用库来帮助处理这些文件,读取和/或编写XML,JSON,CSV,Markdown等。
SQLite就是这样一个库,用于处理SQLite数据库文件中保存的关系数据(行和列的表)。
事实上,如果你碰巧使用Firefox作为你的Web浏览器,它会使用(或者过去常常使用)SQLite来获取各种信息。 Many other programs也使用SQLite;它可能是世界上最流行的嵌入式数据库。
移动设备与其成熟的计算机兄弟一样,一直使用本地文件。看看我个人Android手机上的第三方应用程序,我预计其中至少有一半会使用SQLite。
请注意,互联网并不是无处不在。虽然您可能居住在一个地区,并且有足够的财务状况,但您可以放心地在100%的时间内上网,但不是每个人都在您的情况下。有些人有间歇性的互联网访问,在这种情况下,在本地存储一些数据将非常重要。
由于没有集中式数据库,这是否意味着我因为开发人员无法访问任何用户的信息,因为所有信息都存储在用户手机本地而不是服务器上?
您无法直接访问该数据。但是,欢迎您:
从Web服务读取数据并使用它来填充数据库
作为定期同步的一部分,将数据从数据库发送到Web服务
仅将数据库用作本地缓存(供离线使用),而“记录系统”是Web服务
等
我的应用需要用户帐户注册
目前尚不清楚你的意思。如果您的意思是要求用户注册使用您的应用程序,则在注册Stack Overflow时,这通常意味着服务器上的中央数据库。但是,这并不排除您将某些数据用于本地文件。
答案 1 :(得分:1)
您的用例将决定您将使用哪个数据库。 SQLite用作设备上的数据存储,而MySQL将与为您的Android应用程序构建的某种Web API一起使用。
如果您的Android应用程序需要在设备和基于Web的应用程序之间对用户进行身份验证,那么带有Web服务器的MySQL就是您正在寻找的。 p>
如果您的Android应用程序只具有设备和应用程序本地的用户角色,那么SQLite将为您提供服务。