阅读更新1,了解更好的问题描述。对于那个很抱歉。
我试图弄清楚如何构建一个Android应用程序和Web应用程序以同步那里的数据。
我知道我应该为MySQL数据库制作一个REST API以与Android App同步。
在同步数据之前,我已经制作了一个应用程序,但是只能在android端进行检索(SELECT查询)。
我现在想制作一个Android App / Web App,它应该在两个平台上都可以创建/更新项目并进行同步,因此两者都具有新的/更新的项目。该应用程序还应该脱机工作。
我习惯为大多数数据库表创建id作为自动增量键。现在,我将拥有2个数据库,但我不确定如何创建这些唯一ID。还是我应该放弃这些ID并使用列的组合作为主键(带有时间戳或其他内容)。
希望有道理,英语不是我的母语。
更新1
提出问题:
所以我有一个带有PHP API的MySQL数据库。该API将由Web App和Android App使用。
问题是如何在android App中处理离线数据创建。如果您依赖于id与MySQL数据库的自动递增。
示例:创建人员时如何获取该人员的ID(如果MySQL数据库处理ID创建)
提前致谢,
奥托(Otto Vanluchene)
最佳答案
您要问的是一个非常广泛的问题,有很多选择,但这就是我的方法。
如何处理本地边休息电话:
首先,我使用HTTP库来处理GET / POST REST API调用。它处理回调,并且可能非常有用。
这是我通常使用的一种:
LoopJ's Async HTTP Callback Library
这将使用许多很酷的功能来处理GET和POST请求,例如自定义超时,JSON格式,onSuccess()和onFailure()方法等。该库也有很多有效的示例。我已经在所有应用程序中使用了它,但是还没有任何问题!
数据库设置:
您将要创建一个MySQL数据库来存储所有数据。您可能需要阅读一些常见的数据库实践。
API设置
我用PHP编写了所有API,但这只是我的偏爱。您在此处编写的API将在您的Web和移动应用程序中使用,以保持一致。假设您使用GET,则只需传递一个参数(我通常将其称为“回调”)即可确定API将返回的信息块。
例如:
http://www.ottosite.com/otto_api.php?callback=get_users
因此,在您的PHP代码中,将检查是否callback = get_users,如果是,它将在数据库中查询所有用户,格式化json字符串,然后简单地对其进行回显。
这可能返回类似:
{"status":"success","users":["user1","user2","user3"]}
因此,这显然是JSON格式的响应,然后在您的应用程序中,当您调用该API时,您只需将响应解析为JSONObject(用户的JSONArray),然后从中获取所需的任何数据。
希望这会有所帮助。