MySQLで、2つのテーブルを結びつける手法がわかりません。

投稿者: Anonymous

ユーザーが質問を投稿でき、それに回答できるというiOSアプリケーションを製作中です。

トップには質問一覧が表示されていて、
1つの質問をタップすると、それに対する回答の一覧が表示させる予定です。(図1)

MySQLで質問一覧のテーブルとそれぞれに対する回答のテーブルを作成しましたが、(図2)
質問テーブルと、回答テーブルと結びつける手法がわかりません。
MySQLははじめて触れるため、見当違いな質問をしているかもしれません。
今回のように、あるテーブルともう一方のテーブルを結びつけるためには、
どのような手法があるでしょうか?
そもそも、このようなことができるのでしょうか?
関連するキーワードなどをご教示ください。

画像の説明をここに入力
画像の説明をここに入力

解決

関連テーブル、一対多関係、joins、データベース正規化、データベース基本関連、などで調べられることをオススメします。
データベースの基本概念ですので、どれを読んでもそう外れないと思います。

例えば、下記のようなテーブル構成なら、

users: table
– user_id: integer
– user_name: varchar(100)

questions: table
– question_id: integer
– user_id: integer
– created_at: datetime
– content: text

answers: table
– answer_id: integer
– user_id: integer
– created_at: datetime
– content: text

questions_answers:table
– question_id: integer
– answer_id: integer

質問ID 1 の質問に紐付く回答は、

SELECT * FROM answers AS a 
INNER JOIN questions_answers AS qa ON a.answer_id = qa.answer_id
WHERE qa.question_id = 1

で求められるはずです

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *