私はマイクロブログWebサービスを行います(学校用なので、新しいアイデアがないからといって私を非難しないでください)。DBが過負荷になることが多いのではないかと心配しています(ユーザーは他のユーザーをフォローしたり、タグを付けたりできるので、SELECT
重くなると思います-確認してください)すべての観測タグとユーザーを含む 20 個の最新メッセージ)。
私の考えは、別のテーブルを作成し、そこに statusID と userID (誰がメッセージを受け取るべきか) だけを保存することです。その危険性は、一部のタグまたはユーザーに多くのフォロワーがいる場合、そのステータス ID を持つ多くのレコードが存在することです。それで、それは良い考えですか?それとも、M2M 関係を使用したほうがよいのでしょうか。(1 つのステータス -> 複数の受信者)
質問する
672 次
3 に答える
3
ほとんどのデータベースは、大規模なレコード セットを簡単に処理できると思います。それをプリフォームにする責任は、インデックスを適切に設定した設計にあります。適切なインデックスを作成すると、選択句は非常にうまく機能するはずです。
于 2009-10-31T18:36:31.503 に答える
1
ユーザーとメッセージテーブルの間に m2m 関係を持つテーブルであるユーザーテーブルを使用します。
次に、ユーザーがフォローしているすべてのユーザーを検索するために 1 つの選択を実行してから、関心のあるすべてのメッセージを取得するために 2 番目の選択を実行できます (必要に応じて結果を並べ替えて制限します)。これをタグ付けに拡張するのは非常に簡単です。
この設計は、適切な列にインデックスを付けている限り、多数のユーザーとメッセージに適しています。大規模になった場合は、ユーザー テーブルとメッセージ テーブルを別のサーバーで実行するか、読み取り専用の複製を作成することもできます。私は今のところそれについて心配することさえありません-あなたは巨大である必要があります.
于 2009-10-31T18:37:50.757 に答える