我的应用程序的功能之一:
MyObjects
MyObject
MyObject
MyObjects
首先,我的方法是拥有独立的_id
列(PRIMARY KEY
)并将服务器ID存储在remote_id
列中。但过了一段时间我放弃了这个想法有两个原因:
_id
列但实际上大部分时间都使用remote_id
(CREATE
,UPDATE
,DELETE
有点“难看” )并仅在查询中使用_id
因此,我最终删除了remote_id
列,并将_id
填入服务器端id
这很好,但现在我发现我必须添加一个功能来在本地添加,更新和删除MyObject
。我主要担心的是,本地添加的_id
可能会与远程_id
值发生冲突。
我想出了两个解决方案:
创建一个复合主键,其中包含_id
列,其中包含自动增量,例如local
列,其值为0或1
创建另一个仅包含本地添加的MyObject
实例
您认为哪个选项更好?或许你还有其他更好的想法?
答案 0 :(得分:0)
您可以拥有本地更改的客户端临时表。客户端上线后 - 将所有内容从本地临时表放到远程表中,并使用服务器ID将临时表中的所有内容放到本地主表中。
通过这种方式,您始终可以找到用户在服务器端和本地端所做的差异。