2012-02-17 7 views
0

私自身のフォーラムシステムを作成したいと思います。 フォーラムにはスレッドトピックが含まれています。つまり、ユーザーはメイントピック に応答し、応答は再び応答することができます(ツリー構造)フォーラムデータベースの設計

私のデータベース設計は、すべてのメッセージを含む大きなテーブルです。 すべてのメッセージには、それが応答しているメッセージのIDを保持する 'response_to'フィールドがあります。

私は直感的に聞こえますが、それらのメッセージをすべて1つの大きなテーブルに入れるのは良い設計ではないでしょうか。おそらくトピックを応答メッセージから分離する必要がありますか?

結論として、 フォーラムシステム用にDBを設計する際のベストプラクティスは何ですか? 私はベストプラクティスのデザインに従い、一度やりたいと思っています。

私はあなたの助けに感謝します。 ありがとう、sock.socket :)

+0

[スレッドフォーラムの最適なDB構造は何ですか?](http://stackoverflow.com/questions/362215/whats-the-optimal-db-structure-for-a-threaded-forum) –

答えて

0

応答が(元のスレッドとは別に)応答できる場合は、自己参照テーブルが有効です。たとえば、すべてのマルチレベル階層で同じことが分かります。従業員とマネージャー。

私の経験では、主な問題はネストされたツリー構造のコーディングではなく、多数のスレッドを取得して表示するときのページの読み込みのパフォーマンス、または自己参照が多数のレベル。

MessageIDとRespondToの列に適切なインデックスがあることを確認して、参加時に役立つように注意してください。

+0

ねえ、最初にあなたの答えをありがとう。 私はあなたがパフォーマンスについて言ったことを理解していませんでした。 私はそれを速く動かすために何ができますか? ありがとう – socksocket