私は、5 つの主要なカテゴリがすべて 1 つのテーブルに詰め込まれている SQL Server データベースから実行される Web サイトを刷新する任務を負っています。
現在のデータベースには、Media と Galleries の 2 つのテーブルがあります。
Media テーブルには、5 つのメイン カテゴリそれぞれのすべての情報が含まれています。(ビデオ、ゲーム、漫画、写真、ジョーク)
Galleries テーブルには、ギャラリー (アルバム) に関する情報が含まれています。
その MediaType に関連付けられた情報がないため、一部の列は null です。例: ジョークには、MediaHeight または MediaWidth が関連付けられることはありません。
テーブルの外観は次のとおりです。
メディア
ギャラリー
各 MediaType を独自のテーブルに分割することをお勧めしますか?
何かのようなもの:
ビデオ
ID
MediaID
MediaTypeID
VideoTitle
VideoDesc
など...
ゲーム
ID
MediaID
MediaTypeID
GameTitle
GameDesc
GameWidth
GameHeight
など...
ジョーク
ID
MediaTypeID
JokeTitle
JokeDesc
すべてのデータがそれぞれのテーブルに分割されたら、クエリを実行して結合を実行するメイン テーブルが必要ですか? テーブルがどうなるかはわかりませんが…
現在、ホームページ クエリは、特定の時間における各 MediaType のレコードで構成されます。ユーザーが何をアップロードするかによって、コンテンツは頻繁に変更されます。この 5 つのテーブル レイアウトを使用して、各メディア テーブルからのデータを含むクエリはどのように見えるでしょうか? (ビデオ、ゲーム、ジョークなど)
と
現在のデザインに新しいメディアを追加する場合は、Media テーブルに新しい行を追加するだけで、ホームページ クエリが自動的にそれを取得します。挿入クエリが 5 つのテーブルでどのように機能するかわかりません。メイン テーブルを更新してから、個々の MediaType (例: Jokes) テーブルも更新する必要がありますか?
また
この肥大化したテーブルのデザインに固執する必要がありますか?
ベストプラクティスを念頭に置いて、少し方向性を探しています。
ありがとう!