如何使用Realm处理脱机应用程序的主键更新问题?
我正在研究提供脱机功能的应用程序。 我的应用程序的工作流程是类似以下内容:如何使用Realm处理脱机应用程序的主键更新问题?
1 - 用户在数据库中创建一个新的对象,而离线
2-该对象并获得一个临时(负)ID,如应用程序不还知道什么 最终ID服务器将分配给对象
3-用户在线时再次
4-服务器接收新的对象和最终的ID分配给它
/应用程序同步数据库105-应用程序从服务器收到最终的id并更新对象id到最后一个
我正在使用不允许更新主键的领域数据库。我想你的建议重新回到这个问题,如何处理这种情况。
使用@PrimaryKey在你想作为主键的id。
我不问有关设置主键。请再次看问题以理解问题 –
对不起,我需要从db中删除所有临时ID的项目,然后插入新项目。您无法更新主键。 –
您的应用程序已经有一个功能从服务器,你可以重复使用下载新的数据: 应用程序上传的所有临时对象到服务器后,服务器已经证明,它已经存储了他们,只是删除所有临时对象从你的本地数据库,并做一个服务器→客户端同步。
或者,不要使用临时对象,即更改主键,以便在应用程序创建它时它已经是唯一的;王国文档是
您使用的字符串属性,因为它更容易生成保证是唯一的(特别是在苹果和.NET框架的UUID类)值recommends。
是否有多个用户对同一个数据感兴趣,或者用户是否可能删除他的本地数据,并且必须再次从服务器获取数据? –
@CL。问题是一个表记录与整个数据库连接。如果用户在几天内没有上线并且用户创建数百个脱机记录,并且这些记录在创建整个树时依赖于其他记录。 –
我并没有问这个问题,但是否有从服务器到客户端的新数据同步。 –