2011-01-30 10 views
3

"content"というテーブルがあり、各行が自分のWebサイトの一意のコンテンツを意味するとします。SQLでコメントテーブルを作成する方法

ここで、それぞれのユニークなコンテンツに「コメント」セクションを追加するか、テーブルの各行を言うことができます。現在、私は "コメント"と呼ばれるテーブルを "コンテンツ"テーブルを参照する外部キーで使用しています。各行には200列があり、各列はユーザ​​ーによる単一のコメントを表します。それぞれに1つのセルがあります。

私のウェブサイトのコメントセクションを作る良い方法ですか?これ以上の方法はありますか?

+0

いいえいいデザインではありません。 lookup 3rd normal form –

+0

@Mohit - テーブルは "Content"ですか?あなたは少しこれを明確にしようとすることはできますか?ありがとう! – jmort253

+0

あなたはここで問題を見ていますか? 201番目のコメントはどうなりますか?データベースの正規化についてお読みになることをお勧めします。 –

答えて

2

基本的には、コメントごとに主キーを持つ「コメント」という表を作成するだけです。テーブルには、あなたの "コンテンツ"テーブルにリンクする外部キーがあります。

「コメント」テーブルに5つのコメントがあり、3つが1つのポストに対応し、2つが別のものである場合、3つの行にそれぞれコメントが含まれます。 5つの別個の主キーと、同じ外部キーを持つ3つの行と、同じ外部キーを持つ2つの行があります。

これは、あなたのコンテンツとコメントとの1対1の関係を提供します。内部結合SQLクエリは、単一のコンテンツエントリのすべてのコメントを取得できます。

Ranhiruは正しく、relating inner joins and foreign keysに関する調査を行う必要があります。この例では、2つのコースに登録されている複数の人が表示されます。ここでは、複数のコースに登録することができます。

+0

- コンテンツテーブルに10,000行以上あり、各行のコメント数が増えます。つまり、コメント表には合計で200,000以上のコメントがあります。それはsecoend ?????の中でページを読み込むのに十分速くなります – Mohit

+0

@Mohit - これは、使用しているデータベースとクエリの書き方によって大きく異なります。同じデータを返す2つの異なるクエリは、非常に異なる結果を持つ可能性があります。しかし、あなたのテーブルに200列のコメントをつけることは、間違いなく正規化されたテーブルではなく、間違いなくベストプラクティスです。なぜなら、@ Ranhiruが示唆したようにいくつかの研究をしなければならないことを完全に理解するためです。 – jmort253

関連する問題