ブログ、ビデオ、ギャラリーなど、いくつかのカテゴリがあると仮定します。それぞれにid
、title
、content
、author_id
、created_at
などの投稿データが含まれていますが、カテゴリによって具体的なフィールドがいくつかあります:動画リンクがあり、ギャラリーにはimgURLがあります。
その上、ユーザーはコメントを残すことができます。コメントにもコンテンツと同じフィールドがあります:id
、title
、content
、author_id
、created_at
、およびoriginal_post_id
。
私の質問は次のとおりです。ブログ、ビデオ、ギャラリー、コメントには共通のフィールドがあります。CommonContent
というテーブルを作成する必要があります:id
、title
、content
、author_id
、created_at
?
CommonContent
とBlog/ Video/ Comment
は1:1の関係にあります。それでも、CommonContent
テーブルを作成する必要がありますか?私の懸念は、すべての共通フィールドが1つのテーブルに配置されると、データを選択するときにボトルネックが発生することです。
ブログ、ビデオ、ギャラリー、コメントに共通のテーブルを持つことの利点は、これらのそれぞれに一意のIDを持つことですが、それは実際には必要ありません。
そして、これらはすべていくつかの共通の属性を共有しているようです。したがって、それらを保存するには共通のテーブルが必要ですが、アプリケーションの観点からは、それらは異なり、別のテーブルに保存する必要があります。
それらすべてを共通のテーブルに保存することは、メンテナンスの問題であり、UIに表示するためにそれらのエントリをフェッチするときにも問題になるため、これら4つすべてに異なるテーブルを用意することをお勧めします。
次に、コメントを保存する方法があります。コメントはvideo
またはblog
またはgallery
にあり、時間の経過とともに非常に多くなる可能性があるため、選択できます。カテゴリごとに1つのコメントテーブル。