プロが教える店舗&オフィスのセキュリティ対策術

PHPとMySQLを組み合わせた掲示板を作成しています。

ただ単にデータを挿入し、投稿日が新しい順に表示するだけではなく、各投稿に対して投稿、返信が出来る掲示板のDB設計に悩んでいます。
(一般的に言う ツリー型 です。)

各レコードにIDを割り振り、あるレコードに対し返信すると、そのレコードのIDが返信レコードに割り振られます。
ただ、この場合、返信に対する返信に元のレコードのIDを割り振ることは出来ず、困っています。

また、ツリー式の掲示板はどのようにしてデータをツリー形式で最新順にSELECTしているのでしょうか?

A 回答 (2件)

#1回答者です。



たぶん、MySQLのauto_incrementに頼りきりというか、「IDは自動採番(MySQLなら、auto_increment)するもの」という固定観念でテーブル設計しているのではないかと勝手に推察しています。
RDBMSの自動採番を使うのはケース・バイ・ケースであるし、行を一意に識別でき、コード体系に殆ど変更の可能性がないなら、自動採番を積極的に使う必要はありません。
また、自動採番するにせよ、独自にIDを作るにせよ、その情報を「返信」を管理するテーブルに持てばいいだけの話であって、この辺はテーブル設計の話です。

現状、「どういうテーブル設計」、「どういうSQLによる操作」を考えていて、この方式では、「xxといった問題が生じる」といった具体的な質問をしてもらえなければ、他人には具体的なアドバイスをするのは無理なのです。
    • good
    • 0

内容が曖昧で、質問になっていません。



>各レコードにIDを割り振り、あるレコードに対し返信すると、そのレコードのIDが
>返信レコードに割り振られます。
>ただ、この場合、返信に対する返信に元のレコードのIDを割り振ることは出来ず、
>困っています。

「誰」の機能、制限を説明しているのでしょうか?
自分で構築するのだから、そういった機能、制限を実装すればいいだけでは?

MySQLを使っているなら、バージョンを明記しましょう。MySQL 4.0以前、4.1、5.0以降で、SQLの大幅な機能拡張、一部の仕様変更があります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!