sql >> データベース >  >> RDS >> Mysql

ユーザー認証の目的でデータベース内のレコードの大規模なストレージを処理する方法は?

    問題の事実は、ユーザーごとの記事レベルの権限が必要な場合です 次に、Userを関連付ける方法が必要です s Article ■アクセスできます。これには、最小が必要です。 N * Aが必要です(Aは一意に許可された記事の数です)。

    これに対する3NFアプローチは、あなたが提案したように、UsersArticlesを持つことです。 セット...これは非常に大きなテーブルになります(あなたが指摘したように)。

    このテーブルは頻繁にアクセスされることを考慮してください...これは、わずかに非正規化されたアプローチ(またはnoSQL)がより適切な状況の1つのように思えます。

    Twitterがユーザーフォロワーテーブルに使用するモデルを考えてみましょう。

    この件に関するジェフアトウッド

    および高スケーラビリティのブログ

    これらの作品のサンプルは、正規化されたテーブルからフォロワーにクエリを実行すると、Usersに多大なストレスがかかるというTwitterでの教訓です。 テーブル。彼らの解決策は、フォロワーを非正規化して、ユーザーのフォロワーが個々のユーザー設定に保存されるようにすることでした。

    同様のアプローチを使用して、記事のアクセス許可を提供し、非常にストレスのかかるUsersArticlesを回避できると思います。 単一のテーブル。



    1. Microsoft Accessテーブルのヒント–秘訣とガイドラインパート2

    2. 私のお気に入りのPostgreSQL拡張機能-パート1-

    3. 複数のSQLファイルをMySQLデータベースに簡単にインポートするにはどうすればよいですか?

    4. MySQLでのMATCH()関数のしくみ