这个问题更多的是关于架构和想法,而不是关于代码。
问题:让我们有一个存储所有内容的后端主数据库。然后我们有一个前端本地数据库(SQLLite 或类似的),它只存储用户/设备的相关数据。
用户可以在前端创建数据。然而,多个用户可以同时创建相同的类型(即收据),如果我们使用简单的 int autoincrement PK,后端会发生冲突。
建议的解决方案是:我们使用复合 PK,其中 PK 包括: -autoincrement integer -device ID -user ID
现在,从逻辑上讲,deviceID 和 userID 应该是设备和用户表的 FK,但是由于多种原因,将所有设备/用户存储在每个前端设备上是不切实际的/不可能的,因此 FK 会造成问题。
建议的解决方案是在前端省略 FK req 并仅在后端检查数据完整性,但老实说,我不确定风险/收益是否值得。
有没有人到过这一点和/或在部署它后有一些经验?你觉得呢?你有没有什么想法?非常感谢。