1

Web サイトのデータベース スキーマに関する専門家からのアドバイスをいただければ幸いです。

現在MyISAMエンジンで行われている広告リストサイトのデータベース設計があるため、関係やキーなどはありません.

現在の設計の ER モデルをご覧ください。

ここに画像の説明を入力

ここに画像の説明を入力

DB 設計で正しい軌道に乗っているかどうかを知る必要があります... (最初の計画ではユーザー登録を必要としなかったが、その計画が最近変更されたため、Users テーブルと Ads テーブルの両方で Email フィールドと Password フィールドが重複しています。広告テーブルからこれらのフィールドを削除するので、このビットは無視してください)

このサイトは、ローンチから数か月以内に、少なくとも 1 日 100,000 ページ ビューを達成できる可能性があると予想されます。

このデザインについてどう思いますか、また何が改善できるかアドバイスをお願いします。

また、そのようなサイト (InnoDb またはその他...) に使用するのに最適な Db エンジンについてアドバイスをお願いします。

Performance、Load、Db Integrity (現在 MyISAM エンジンで設計されているため、Db の整合性がないため必要な場合) を念頭に置いて、このデータベースに最適なストレージ エンジンについてアドバイスをお願いします。 .

特定のデータベースの問題/問題は、実際に発生した場合にのみ処理できることを知っていますが、少なくとも正しい方向に始めたいと思っています。

ご協力いただきありがとうございます。

4

2 に答える 2

2

一目で。. .

ダイアグラムには、主キー、一意の制約、またはそのようなものは表示されません。彼らの不在は厄介です。

ほとんどすべてのテーブルには ID 番号があります。単に「id」と呼ばれるものもあれば、よりわかりやすい名前を持つものもあります。これらの 2 つのアイデアのほうが、より説明的です。

他に一意の制約がないテーブルの ID 番号は、通常は誤りです。(通常、常にではありません。) たとえば、テーブル "cats" は、おそらく "catname" に対して一意の制約を必要とします。それ以外の場合、ID 番号は猫ではなく行のみを識別します。(つまり、同じ「catname」を持つ行を 2 つ以上持つことができます。)

テーブル adxfields と subcatxfields は、機会を待っている災害のように見えます。テーブル「subcatxfields」は、ある種の EAV アンチパターンのように見えます。その道を進む前に、データベースのアンチパターンに関する Bill Karwin のスライドショーを注意深く見てください。(EAV はスライド 16 から始まります。)

サブキャットの価格設定は、おそらく別の表に移動する必要があります。

国コードには国際標準があります。自分の ID 番号ではなく、標準の国コードを使用することをお勧めします。人間が読めるコードを使用すると、通常は結合を排除できます。(通常、常にではありません。)

テーブル "cities" には、都市を識別するのに十分な列がありません。(アメリカには「ワシントン」という名前の都市がたくさんあります。)

十分な時間です。. .

于 2011-09-04T18:26:09.260 に答える
2
  1. なぜ MyISAM を使用するのですか? 私が見たところ、あなたは高性能のウェブサイトについて話しているのではありません。なぜそれを使用するのですか??? InnoDB を使用します。

  2. データの整合性はオプションではないため、専門家でない場合は、アプリケーションにロジックを実装することを考えていない可能性が高いため、FK の使用を検討する必要があります。

  3. ER モデル (関係が定義されていないため、ERM でさえないため、R がなく、EM のほうが多い) を見るだけでは、それほど多くは言えません。私たちにはストーリーが必要です。ストーリーは大きく見えます。

  4. 1 日 10 万ヒットはピーナッツであり、この場合は誤解を招きます。1 秒あたりの予想最高速度は? このレベルをどれくらい維持できる必要がありますか?

  5. このモデルにもデータ型がありません。これらは、最小限の分析でもオプションではありません。

  6. このようなことは通常、議論して分析するのに何日もかかりますが、特に情報が不足していることを考えると、ここでは少し行き過ぎだと思います.

于 2011-09-04T18:17:37.027 に答える