目前,正在开发一个需要在服务器之间同步其数据的应用程序。该应用程序大量使用SQLite,因此我们转移到原始sqlite并决定使用FMDatabase。我们的表是非规范化的,没有密钥,因为我们不管理数据状态,只是收集数据并发送它。我们在某个时间间隔更新表(从服务器获取并插入新内容),但更频繁地将数据发送到服务器。
来自服务器的数据是带有id值的完整记录(char类型GUID值),因此我们使表的PK键由这些id列组成。问题是,当从服务器获取数据时,我只需要插入新记录,目前,我正在使用这些id值进行插入。由于id列上的唯一PK约束,一些记录被插入(新)并且一些记录失败。对我来说,它完全没问题,只是在控制台中惹恼消息(违反了唯一键)并且不确定它是否会影响性能等等。我可以在插入新内容之前循环记录,找到现有记录并插入真正新记录但我认为这是浪费。
另外,我可以使用显式的内部int id(PK索引更快),但是我们的表与FK无关,所以它是多余的。有什么想法?