gpt4 book ai didi

安卓数据库解决方案

转载 作者:行者123 更新时间:2023-11-30 03:33:39 25 4
gpt4 key购买 nike

我目前正在 Android 上开发一个需要读取和写入数据库的应用程序。问题是每个使用该应用程序的人都需要读取相同的数据,因此如果一个人添加数据,则该数据仅适用于他们特定安装的应用程序。

我需要的是一个每个人都从同一个数据库读取和写入的解决方案,也许每个人都可以连接到网络上的数据库,

那么我想问的是,对于每个人来说,单一数据库的最佳方法/API 是什么?

最佳答案

一般来说,您至少需要一个 seanrio 网站空间,例如php 支持(如果 sqlite 插件可用)。一般来说,我建议使用真正的 SQL 或非 SQL 服务器(取决于您想要实现的目标)。根据我的经验,我建议使用 mysql,它在网络上很常见。

为了便于说明,我将以 PHP 和 MySQL 为例。

准备

首先确保您的服务器安装了正确的插件。您可以使用一行 php 脚本来检查这一点:

<?php php_info(); ?>

数据库访问

在那里你应该寻找一个 section MySQLi 或者更好地寻找 PDO 。请注意,如果您找到一个 mysql 部分,请不要使用它。他们不再维护 and are officially deprecated 。您应该学习如何使用 prepared statements 。如果您不确定决定使用什么,请阅读 this article 会对您有所帮助。如果选择 PDO,here is a good tutorial

快速说明为什么你不应该在服务器端使用 SQLite:这个数据库是基于文件的,不支持同时使用多个用户。顺便说一下,这在客户端 (Android) 上没有问题,一次只有一个用户。

设计你的架构

在开始之前,请确保基本了解您将获得多少用户。如果您有 1 万名用户,那么每个请求都需要 10 秒,您的客户不会使用您的应用,这一点至关重要。

阅读关于 normalization 的一些罕见情况下的高效数据存储,denormalization 对于高性能用例也是很好的了解。

安全

您应该知道如何保护您的用户数据,特别是如何保护用户密码,这对于在您的网站被黑客入侵时保护您的用户非常重要。所有密码不得以明文形式存储!而是将它们的所谓散列与随机盐一起存储。作为一个例子,让我们以密码“12345678”(最常见的方式)在 linux 系统上使用 /dev/urandom 生成一个随机散列,另请参阅 this question 。如果您不想关心用户密码,您也可以使用 Google+ Sign-In ,这是一个非常酷的功能,但也非常复杂。

一般来说,您还应该传输所有由 ssl 加密的数据,但这非常昂贵。此外,如果有一些方法可以获得免费证书,如 CAcertStartSSL

如果您按照上面的建议使用准备好的语句,则无需关心 (blind) SQL injections,但了解它的存在也很有帮助。

传输

我建议实现一个REST APIJSON格式一起传输数据。对于数据编码,您可以使用 json_encode() 和 Android 类 JSONObject 。如果您还希望数据自动转换为类,您可以使用 GSON

关于安卓数据库解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16988337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com