我正在编写一个Android应用程序,它将与我的网络服务器上的MySQL数据库同步(还有一个网站读取/写入相同的dB)。 Android应用程序将在sqlite数据库中本地存储数据副本,以便在脱机时提供访问权限。如果用户在离线时创建行,则下次数据连接可用时,该记录将上载到服务器。我自己设计应用程序和网站,所以我有能力按照我认为合适的方式设置它(意味着它不必符合其他人的服务器)。
sqlite db将有一个id列(表示存储在服务器上的id)和一个localID列。当服务器收到数据时,它将通过返回存储在服务器上的id号的数组(以json格式)来确认新数据。
对于这种类型的场景会更好:事务安全引擎还是非事务安全(例如isam)?我的理解是,isam会更快,占用的空间更少,但我无法处理丢失的数据。我想如果Android应用程序没有收到确认,它将重新提交数据。这似乎可以防止数据丢失,但我需要第二个(更有经验的)意见。如果你选择一个交易安全的数据库,你会推荐我,因为我从来没有使用过它?
TIA!
答案 0 :(得分:1)
real database应该是您的默认选择,直到您发现它不够快。
考虑使用UUID在客户端上生成保证在服务器上唯一的ID。
您是否考虑过如何处理来自多个设备的更新,这些设备都有离线更改?您应该考虑一些已知的模式来处理这种同步。