質問: 現在Q&Aのサイトを作っています. バックエンドが苦手なので,是非皆様の意見をお聞かせください. 使用するDB MongoDB 内容 Q&Aサイト構築 質問に対して複数の答えが来ます yahoo知恵袋を想像してください. yahoo知恵袋よりも質問内容は簡潔です. ユーザーは質問も解答もできます. 質問ページと解答ページを設けます. 現在の方針 コレクション(テーブル)を2つ用意します. 1.question[質問用] 2.answer[解答用] 1. question["q" : "質問内容" , "date" : "日付け" , "type" : "ジャンル"] 2.answer ["q" : "質問内容" "date" :"日付け" "ans" : "答え" "name" : "名前" "good" : "いいね"] DB->フロントエンドとしては, まず,質問を全部出力します. フロントエンドでは,アコーディオンで質疑応答を見えるようにします. 質問内容を見てanswerを出力するといったイメージです. 皆様のご意見やご指摘をお願いしたいと思っております. プロの方なら別の書き方をするのか気になります. 質問内容としては, Q&Aサイト開発時の皆様のテーブル構造を教えていただきたいです. どうかよろしくおねがいいたします
回答: 考え方がいくつかあります * Qに対するAがすべて並列(最大1階層) Aに対して親Qのidを持つだけなので楽ですが、スレッドが保てないので 特定の質問に補足などが入れにくいです * Qに対するAが並列で、Aに対するAが繋げられれる Aに対するAはスレッドを持たないようにする(つまり最大2階層) この方法ならある程度スレッドの流れがわかりやすいです(teratailもこれ) ただ、Aに対してつぎつぎと分岐することができないので、やや煩雑です * Qに対してAが任意に無限に分岐させる この方式はよりインテリジェントですが、木構造をとらないといけないため ややデータ管理が煩雑になります。