如何有效地将Android数据库与Web数据库同步

时间:2011-09-15 16:32:25

标签: android sqlite

我的Android应用数据库与我的网络服务器上的中央数据库同步。我的问题是有效地同步它。

该表设置为“id”(主键),“town”。 Android应用程序想要给定城镇中所有人的ID

我目前的流程是:

get list of all ids for town "A"
set all existing records in Android database to "old"
add/update ids in the list to "current"
delete any records still set as "old"

瓶颈来自添加/更新过程:

for each id {
    result = update WHERE _id = id
    if (result == 0) {
        add record
    }
}

是否有像WHERE _id IN(id1,id2,id3,id4 ....)这样的语句,如果已经存在则会充当添加/更新? 还是我完全错了?

由于

2 个答案:

答案 0 :(得分:2)

那么为什么你更新数据,在同步时删除android设备中的所有数据并从服务器添加最新数据

我这样说是因为它会灵活,首先删除所有并插入所有(最新的)

答案 1 :(得分:0)

  1. 在服务器端构建一个表(ID,Town,UpdateTime)
  2. 在UPDATE / INSERT上添加triger以修改UpdateTime
  3. 使用fx SharedPreferences
  4. 在设备上存储LastUpdate时间
  5. 将LastUpdate发送到服务器
  6. 从表WHERE UpdateTime>构建具有ID,Town的JSON或XML LastUpdate +(放置在JSON或XML中)(CurrentTime GETDATE() 来自DB)
  7. 在设备数据库更新,LastUpdate到CurrentTime
  8. 中插入/更新