两个或Android设备和网站之间的数据同步

时间:2015-05-15 11:05:17

标签: android synchronization

我正在构建一个允许用户插入数据并与网站同步的应用。用户也可以在网站上插入数据。有两个实体表(T1T2)和一个N-M关系表(TR)。

数据结构(这只是说明性的):

T1 (_id, name, modified)
T2 (_id, name, modified)
TR (t1_id, t2_id)

我面临的问题是ID的数据同步。例如。设备A1和A2处于脱机状态,并且两者都插入记录,ID = 1.在线上同步启动后,ID与ID冲突。我想过引入一个额外的列gid - 类似于全局ID。所以结构将是:

T1 (_id, name, modified, gid)
T2 (_id, name, modified, gid)
TR (t1_id, t2_id, t1_gid, t2_gid)

全球ID将由网站分配。

但我不确定这是否是一种好方法(之前从未做过这样的事情,也无法判断将来是否会有任何问题)。

1 个答案:

答案 0 :(得分:3)

您必须使用其他ID,假设network_id,在服务器上生成所有network_ids并在设备上使用本地ID(例如UUID)。当您发送创建实体请求服务器将生成一个真实的ID并将其返回给您,因此您可以使用network_id更新本地数据库。仅当您没有network_id时,将network_id用作主要字段和local_id非常重要。