我正在开发可在离线模式下工作的移动应用程序。
我有一个在线应用程序,该应用程序在服务器上的数据库中使用一个名为“ Books”的表,而我的移动应用程序具有一个带完全“ Tables”表的sqlite数据库。
[当应用程序获得Internet可用时,它会将数据从sqlite中的“ Books”表同步到SQL Server中的“ Books”表同步。
我正在使用MERGE (Transact-SQL)语句来执行它。但是我有一个问题。
想象我的移动应用没有连接互联网已有7天了,表格如下:
Books(SQL Server) +----+---------------------------------+--------------+ | Id | Name | LastModified | +----+---------------------------------+--------------+ | 1 | Modern Operating Systems | 2019-09-20 | +----+---------------------------------+--------------+ | 2 | The Art of Computer Programming | 2019-09-20 | +----+---------------------------------+--------------+
Books(sqlite in mobile App) +----+---------------------------------+--------------+ | Id | Name | LastModified | +----+---------------------------------+--------------+ | 1 | Modern Operating Systems | 2019-09-20 | +----+---------------------------------+--------------+ | 2 | The Art of Computer Programming | 2019-09-20 | +----+---------------------------------+--------------+ | 9 | Computer Networks | 2019-09-26 | +----+---------------------------------+--------------+
考虑到sqlite和SQL Server中的两个表都包含自动增量主键,如果使用“ Id”作为合并标准,它将得到肮脏的合并。
在这种情况下,我应该如何合并?
我正在开发一个移动应用程序,它将能够在脱机模式下工作。我有一个在线应用程序,它使用服务器上数据库中名为“ Books”的表,而我的移动应用程序具有...
使用复合主键解决了我的问题。