我正在构建一个允许用户插入数据并与网站同步的应用。用户也可以在网站上插入数据。有两个实体表(T1
和T2
)和一个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将由网站分配。
但我不确定这是否是一种好方法(之前从未做过这样的事情,也无法判断将来是否会有任何问题)。
答案 0 :(得分:3)
您必须使用其他ID,假设network_id,在服务器上生成所有network_ids并在设备上使用本地ID(例如UUID)。当您发送创建实体请求服务器将生成一个真实的ID并将其返回给您,因此您可以使用network_id更新本地数据库。仅当您没有network_id时,将network_id用作主要字段和local_id非常重要。