この質問は、コードよりもアーキテクチャとアイデアに関するものです。
問題: すべてを格納するバックエンドのメイン DB を用意しましょう。次に、ユーザー/デバイスに関連するデータのみを格納するフロントエンド ローカル データベース (SQLLite など) があります。
ユーザーはフロントエンドでデータを作成できます。ただし、複数のユーザーが同時に同じ種類 (つまり、レシート) を作成することができ、単純な int 自動インクリメント PK を使用すると、バックエンドで衝突が発生します。
提案された解決策は次のとおりです。複合 PK を使用します。ここで、PK は次のもので構成されます。 -autoincrement integer -device ID -user ID
ここで、論理的には、deviceID と userID はデバイスとユーザーのテーブルへの FK である必要がありますが、いくつかの理由から、すべてのデバイス/ユーザーを各フロントエンド デバイスに格納することは実際的/不可能であるため、FK は問題を引き起こします。
これに対する提案された解決策は、フロントエンドで FK 要求を省略し、バックエンドでのみデータの整合性をチェックすることですが、正直なところ、リスク/ゲインがそれだけの価値があるかどうかはわかりません。
誰かがこの時点に行ったことがありますか、および/または展開後に何らかの経験がありますか? あなたの考えは何ですか?どうもありがとうございました。