我正在开发一个Android应用程序来收集商店(Grocery)信息。 该应用程序具有创建商店的模块,设置它的属性,如地址,lat lng,营业时间,经理详细信息,建筑照片等。 创建商店后,用户需要通过单击照片并提供其详细信息来列出该商店的商品。
为了存储所有这些细节,我有大约15个SQLite表。
现在我想实现'同步'的功能,所有这些捕获的细节需要在连接可用时发送到服务器,否则应该在本地存储细节,只要连接可用,它就应该移动到服务器。
另外,请注意,随着应用程序的增长,表的数量可能会增加到40个。
我在Google上搜索了这方面的解决方案/方法,但在他们提到的大部分文章或示例中都提到了小数据的小规模应用程序。
我还为小数据表(2个表)实现了同步功能,我检查了服务器和本地的最新更新时间戳,如果不同,那么我们会同步数据。我不这样做,我应该将这种方法用于如此大规模和大型的数据库。
我有一种方法不依赖于表的数量。 我打算用单表来存储以下数据
ID 网址 请求标头 请求正文
现在假设发送请求时连接不可用,因此它将存储在表中。只要连接可用,它就开始读取表并执行请求,成功时它将从表中删除条目。使用这种方法,我们在SQLite中只需要一个表。
这种方法的问题是当我们想要离线检索数据时我们如何做到这一点?我们是否需要具有与服务器相同的本地数据库模式?
请指导。
由于
答案 0 :(得分:0)
如果您正在与服务器同步数据并且您要删除本地存储数据(根据我的知识这是不正确的),在这种情况下,您的应用程序无法脱机工作。那时当您将数据同步到服务器时维护一些数据同步的标志。然后下次只检查标志状态,如果它已同步,则不同步数据,否则进行同步。 我希望这能解决你的问题。