ユーザーがアプリに認証され、todo リスト項目を保存できるシンプルな todo リスト webapp の設計の練習に忙しくしています。ユーザーは、自分が追加した todo リスト アイテムのみを表示/編集することもできます。
これは、ほとんどの Web アプリケーション (または一般的なアプリケーション) の一般的な機能 (認証されたユーザーは自分のデータのみを表示する) のようです。
私にとって重要なことは、これを達成するためのさまざまなオプションについての知識を持つことです。私が達成したいのは、多くのユーザーのデータを効果的に処理できるソリューションです。現時点では、リレーショナル データベースを使用してこれを行っていますが、noSQL の回答も役に立ちます。
次のアイデアが浮かびました。
私が選んだのは、todolist_item テーブルの user_id 列です。仕事はできますが、テーブル内のデータが十分に大きくなると、データを読み取るときに user_id 列が問題になる可能性があると感じています。私が推測するインデックスを追加することもできますが、インデックスの有効性についてはわかりません。
私が気に入らないのは、このタイプの機能が必要なすべてのテーブルに user_id が必要であることです。これは私には正しくないようです。また、データベース層を実装するときに、すべての機能のクエリにこれを追加する必要があるようです (AOP を使用しない限り)。
( Trello は MongoDB にデータをどのように保存しますか? (ボードごとのコレクション?) )を調べましたが、user_id 列などに関する手法については触れていません。私はまた、いくつかのセキュリティフレームワーク(具体的にはSpring Security)でこれについて読んでみましたが、行レベルではなくテーブルレベルでの特権/許可にのみ入るようです?
問題は、私の選択が適切であったかどうか、そしてこれを行うためのより良い手法があるかどうかです。