这个问题更多的是关于代码的体系结构和想法。针对分布式数据库的解决方案/设计,具有时间同步的PK/FK解决方案
问题: 让我们有一个存储所有内容的后端主数据库。 然后我们有一个前端本地数据库(SQLLite或类似的),它只存储用户/设备的相关数据。
用户可以在前端创建数据。但是,有几个用户可以同时创建同一种类型(即收据),如果我们使用简单的int自动增量PK,则后端会发生冲突。
提出的解决方案是: 我们使用复合PK,其中所述PK组成: -autoincrement整数 -device ID -user ID
现在,logicaly,设备ID和用户ID应该是FK到设备和用户表,但是由于几个原因,在每个前端设备上存储所有设备/用户不可行/不可行,所以FK使其成为问题。
建议的解决方案是为了省略FK请求并仅在后端检查数据完整性,但说实话,我不确定风险/收益是否值得。
有没有人对此有所了解和/或在部署后有一些经验? 你有什么想法? 非常感谢。
SQLite不提供UUID或GUID函数,但现在大多数编程语言都这样做。因此,您可以在应用程序代码中生成GUID,然后将其存储在SQLite数据库中。你*可以*在C中创建一个函数并将其编译到SQLite中,但我认为这通常比它的价值更麻烦。 –
很高兴知道。谢谢! –