0

Web メール アプリケーションを実装しています。登録ユーザーのみが電子メールを送信、受信、および表示できます。データベースの設計を開始すると、次の問題が発生しました。
このアプリケーションには潜在的に100,000 人のユーザーがいるとしましょう (おそらくそれ以上)。各ユーザーは 、受信トレイに 数( n*1000 )の電子メールを持つことができます。



受信ボックス テーブルを 1 つだけ使用すると、100000*(n*1000)レコードが含まれます。別の方法を使用すると、特定のユーザーの電子メールのみがそれぞれの受信ボックス テーブルに保存されます。しかし 、データベースには何千もの受信トレイ テーブルがあります。

どなたかデザインの手がかりを教えていただけないでしょうか...

4

1 に答える 1

2

これは、最初に表示されるよりも難しい質問です。通常、傾きはテーブル 1 台分です。

ただし、ここではユーザーとメールについて説明します。SQL Server では (他のデータベースと同様)、行レベルではなくテーブル レベルでアクセス許可を処理する方がはるかに簡単です。したがって、これは、複数のテーブルに移動する可能性がある 1 つの考慮事項です。

これは、複数のテーブルが難しいという事実にもかかわらずです。

  • データ構造への変更は、無数に複製する必要があります。
  • SQL は非常に大きなテーブルを処理するように設計されていますが、必ずしも多くのテーブルを処理できるわけではありません (ただし、数千のテーブルが問題になることはありません)。
  • 「各ユーザーの未読メール数は?」などの単純なクエリ。ほとんど不可能になる。
  • inbox テーブルへの外部キー参照はできません。
于 2015-10-10T16:45:38.100 に答える