問題の事実は、ユーザーごとの記事レベルの権限が必要な場合です 次に、User
を関連付ける方法が必要です s Article
■アクセスできます。これには、最小が必要です。 N * Aが必要です(Aは一意に許可された記事の数です)。
これに対する3NFアプローチは、あなたが提案したように、UsersArticles
を持つことです。 セット...これは非常に大きなテーブルになります(あなたが指摘したように)。
このテーブルは頻繁にアクセスされることを考慮してください...これは、わずかに非正規化されたアプローチ(またはnoSQL)がより適切な状況の1つのように思えます。
Twitterがユーザーフォロワーテーブルに使用するモデルを考えてみましょう。
これらの作品のサンプルは、正規化されたテーブルからフォロワーにクエリを実行すると、Users
に多大なストレスがかかるというTwitterでの教訓です。 テーブル。彼らの解決策は、フォロワーを非正規化して、ユーザーのフォロワーが個々のユーザー設定に保存されるようにすることでした。
同様のアプローチを使用して、記事のアクセス許可を提供し、非常にストレスのかかるUsersArticles
を回避できると思います。 単一のテーブル。