-1

私は最初のデータベースを設計しており、最初の PHP プロジェクトをゼロから作成しています。データベース スキームをレビューする人が必要です。

PHP スクリプトの目的: YouTube、Myspace、Metacafe、Vimeo などのサイトでプロモーション ビデオを公開するときに、ネットワーク内のさまざまなサイトのトラフィック統計を表示するため。

私はそれをどのように整理するつもりですか:

  1. 1 つのサイトに、「ギター レッスン」、「歌のレッスン」、「ダンスのレッスン」などの複数のカテゴリを含めることができます。
  2. 一部のカテゴリには、サブカテゴリを含めることができます。「ギターレッスン」が「ベース」と「エレクトリック」に分かれるのと同じように
  3. 1 つのカテゴリに 1 つのプロモーション ビデオを含めることができます。下の画像では、ビデオの名前はitemです。
  4. 1つのカテゴリで1つのアイテム(プロモーションビデオ)を作成できます
  5. 1本のプロモーション動画を複数の動画共有サイト(Youtube、Vimeoなど)に投稿可能
  6. 1 つのプロモーション ビデオには、「タイトル」や「説明」などの複数の異なるメタ データを含めることができます。

発生する可能性のあるシナリオ:

  1. いつかYoutubeが私のプロモーションビデオの1つを削除するかもしれません。その場合、おそらく別の「タイトル」と「説明」で再アップロードしますが、削除前の以前の再生回数などの古い情報を統計に表示したいと思います.
  2. 今は他に考えられない..

編集: テーブル itemStats を追加しました ここに画像の説明を入力

EDIT2:別のitemStatsテーブルが必要になるかどうかわかりません。itemMeta と結合しようと考えていますか?

4

2 に答える 2

1

主キーを外部キー (sites:id から category:siteid) にリンクする代わりに、一部のテーブル (users:id から usersMeta:id) の主キーに主キーをリンクしています。うまくいかないのではないでしょうか。

于 2012-11-04T17:41:23.070 に答える
0

usersusersMeta1 つのテーブルに結合することをお勧めします。usersMetaには、ユニークで有用なフィールドが 5 つしかありません。必要に応じて、すべてのデータを取得するために結合を利用する必要がありますが、私の意見では不要です。正規化とは、冗長性を取り除き、すべてのテーブルのフィールド数を最小限に抑えるためのプロセスであることを覚えておいてください...しかし、これには代償が伴います。ほとんどの場合、コストはパフォーマンスです。

また、usersテーブルは、それらを組み合わせて合計 9 フィールドまでしかありません。それはまだ私が非常に小さなテーブルであると考えているものです. 以前に 20 ~ 30 のフィールドを持つテーブルがありました。私の場合、そのデータはテーブルに固有のものであり、他のテーブルやシステムの一部がそのデータを利用したことがないため、そのデータを分離することは意味がありませんでした.

于 2012-11-04T23:24:11.440 に答える