- ベストアンサー
掲示板用のDB設計
PHPとMySQLを組み合わせた掲示板を作成しています。 ただ単にデータを挿入し、投稿日が新しい順に表示するだけではなく、各投稿に対して投稿、返信が出来る掲示板のDB設計に悩んでいます。 (一般的に言う ツリー型 です。) 各レコードにIDを割り振り、あるレコードに対し返信すると、そのレコードのIDが返信レコードに割り振られます。 ただ、この場合、返信に対する返信に元のレコードのIDを割り振ることは出来ず、困っています。 また、ツリー式の掲示板はどのようにしてデータをツリー形式で最新順にSELECTしているのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1回答者です。 たぶん、MySQLのauto_incrementに頼りきりというか、「IDは自動採番(MySQLなら、auto_increment)するもの」という固定観念でテーブル設計しているのではないかと勝手に推察しています。 RDBMSの自動採番を使うのはケース・バイ・ケースであるし、行を一意に識別でき、コード体系に殆ど変更の可能性がないなら、自動採番を積極的に使う必要はありません。 また、自動採番するにせよ、独自にIDを作るにせよ、その情報を「返信」を管理するテーブルに持てばいいだけの話であって、この辺はテーブル設計の話です。 現状、「どういうテーブル設計」、「どういうSQLによる操作」を考えていて、この方式では、「xxといった問題が生じる」といった具体的な質問をしてもらえなければ、他人には具体的なアドバイスをするのは無理なのです。
その他の回答 (1)
- chukenkenkou
- ベストアンサー率43% (833/1926)
内容が曖昧で、質問になっていません。 >各レコードにIDを割り振り、あるレコードに対し返信すると、そのレコードのIDが >返信レコードに割り振られます。 >ただ、この場合、返信に対する返信に元のレコードのIDを割り振ることは出来ず、 >困っています。 「誰」の機能、制限を説明しているのでしょうか? 自分で構築するのだから、そういった機能、制限を実装すればいいだけでは? MySQLを使っているなら、バージョンを明記しましょう。MySQL 4.0以前、4.1、5.0以降で、SQLの大幅な機能拡張、一部の仕様変更があります。