私は、ユーザーアカウントの情報を格納するためのSQLiteデータベースを持つアプリを持っています。私は、アプリケーションが1人のユーザーしか持たないという前提でデータベースを設計しました。そのため、ユーザーのIDはデータベースには格納されません(サーバーの中央データベースに格納されます)。しかし、アプリをログアウトして別のユーザーにログインさせることは可能ですが、この問題はその時点でデータがダウンロードされてから、別のユーザーのデータに追加されます。これは私が起こりたいことではありませんが、これを解決するためにデータベース設計をどのように変更するのがベストであるかわかりません。私は約考えました:複数のユーザーがいる可能性のあるAndroidアプリ用のSQLiteデータベース
- ユーザーあたり1データベース。ユーザーが友人の携帯電話に一度だけログインして、もう一度ログインしないと、不要なデータストレージが発生する可能性があります。また、これは管理が難しいかもしれないと思います。
- すべてのテーブルにユーザーID列を追加するため、追加することで問題は発生しません。まだ(1)が持っていて、1のモジュール性を失う、不必要なデータ問題があります。
- ユーザーがログアウトしたときにデータベースを消去します。ユーザーがサーバー上に多数のデータを持っている場合、アプリケーションの起動時にデータを同期するのに時間がかかります(これは別のスレッドで行われますが、それでも問題はありません)。
これらのアプローチの1つは良いですか?それとももっと良い方法がありますか?
私はLRUのアプローチが好きです。私はLRUのアプローチが好きです。私は、それらがいつ変更されたかを把握することを考えていましたが、どちらの提案も簡単に実装できます。そして、私は本当に1人以上のユーザーが同じデバイス上でアプリを使用することは疑うが、あなたは決して知りません!ありがとう:) – Pikaling
プロポーザル2の上にプロポーザル1の実際の利点は何ですか?どのような「モジュール性」が失われますか?どのような "パフォーマンスの影響"ですか?誰かに正規化と関係データベースの原則について聞いたことがありますか?デバイスに保存されている複数のデータベースに対して、データベース構造のアップグレード/変更がどのように実行されますか? – Ewoks