我正在构建一个iPhone应用程序/ Web应用程序,我正在尝试通过最佳方式来实现数据库的双向同步.我可能会在iPhone上使用sqlite和在网上使用mysql(因为这就是我所知道的),但我不确定如何处理它们保持同步.
这是一个示例模式:
index_id(自动增量)| 标题| 金额| user_id | 创建(日期时间)
类似的线程
好吧,我有两个关于如何处理这个的后续想法,认为它作为答案而不是编辑更好:
1)您有两个数据库,一个用于手机,一个用于Web应用程序.架构看起来像这样:
index_id | title | amount | user_id | created | environment | foreign_id
所以,假设我的移动设备上有一个条目:1,'标题',2.00,1,现在()和我的网络应用程序上的条目,1,'Something',5.00,1,NOW().为避免这两件事发生冲突,网页应用会添加一行,分别为2,'标题',2.00,1,现在(),'移动',1.
通过这种方式,我可以正确地维护所有index_id.这似乎是维持和正确的绝对噩梦.
2)如果要将数据库(比如Web应用程序)指定为主服务器并将设备指定为从服务器,那么Web应用程序上有一个表,设备上有两个表.对于设备,您将有一个表'队列',在网络连接时,它将更新实时Web应用程序数据库(同时清除自己),然后WEB APP数据库将以一种方式同步回到该设备的第二个主表.
在同步之前,设备上的业务逻辑必须将两个本地表视为一个.这似乎比上面更容易解决.