質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

3テーブルのユーザー情報の紐付けについて教えて下さい。

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,637

ssk

score 286

やりたいこと

ユーザーのコメントに対して、返信する

できていないこと

返信したユーザー情報の紐付け


テーブル構成はこちらです。
user(テーブル名)
-code
-user_name
-mail
-password

post(テーブル名)
-post_id
-code
-slug
-contents

comment(テーブル名)
-post_id
-code
-slug
-comment

上記のテーブルの内容を、こちらのSQL文で情報を取得しました。
SELECT * FROM post INNER JOIN user ON post.code = user.code INNER JOIN comment ON post.post_id = comment.post_id WHERE post.slug=? AND comment.slug=?

たしかに、情報は取得できているのですが、

・postテーブルのcodeとuserテーブルのcode(ユーザー名や画像情報)
・commentテーブルのcodeとuserテーブルのcode(ユーザー名や画像情報)

と分けて、情報を取得したいのです。
つまり

投稿したユーザー名さん(code1)の情報
コメント投稿したユーザー名さん(code2)の情報

という形で取得できれば良いのですが、可能でしょうか?

ご教授願いします。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+1

「どう作りますか?」と言われたら、設計から開始します。
PHPとか言語問わず共通ですね。

イメージ説明ユースケース図を作るのが一番なのでしょうが、今回ユーザが多く無いのでマインドマップで代用します。
(ログイン画面のイメージも作っておくと良いですね)

イメージ説明マインドマップで考えた内容を満たすようにDB設計をしていきます。
ざっくりで構いません。ここで100%のものを作っても意味が無いので。

その後、アクティビティ図を書きます。
イメージ説明割と力尽きてきました。

クラス図を書いていきます。
イメージ説明だいぶ適当ですね。本当はもっとしっかり書いていきます。

後は画面設計がありますが、私はデザインセンスがないので今回は省いています。
実際はマインドマップのあたりで画面設計してます。

仕事なら、クラス図を元に詳細設計を書くかもしれないですが、プライベートなら書きません。
そのままソースコード書いちゃうと思います。

私達の仕事は、計画・設計がものすごいウェイトを占めています。
逆に、この情報無しに「作れ」と言われてもおそらく作れません。もちろん、この手順は【理想】です。
現実は、最初からコード書けって言われるかもしれませんが、頭の中でこれらのことが組み立てられるようにならないといけないです。

…おそらく、望む回答ではないでしょう。
sskさんは部品の作り方を知りたいのでしょうが、残念ながら、「どの画面のどの部品」を作って欲しいのかわからないと、私もわからないのです。(リレーションもわからないし)

この回答は参考程度に見てください。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/08/25 21:32

    anonymouskawaさん

    至れり尽くせりです><ありがとうございます!

    お陰様で自分のやりたいことができそうです。
    次回からは、計画・設計、、もっと詰めないとダメですね。。
    本当に助かりました><

    キャンセル

checkベストアンサー

0

SELECT *
FROM post
INNER JOIN USER ON post.code = user.code
INNER JOIN COMMENT ON post.post_id = comment.post_id
INNER JOIN USER user2 ON comment.code = user2.code
WHERE post.slug=? AND comment.slug=?
こういうことでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/08/25 14:48

    詳しくありがとうございます。そうですか。。javaですか><
    javaはかじったこともないので、現時点での私のレベルではやりたいことはできなそうですか?

    キャンセル

  • 2015/08/25 15:02

    いえ、javaもPHPも掲示板を作るという目的に対して「できない」ということはないです。
    機能を洗い出して、個別に見れば「いけるいける」ってなりますよ。

    まだ、色々なことを考えて自分で手を動かして、「どうしたら動く」「どうしたら動かない」を沢山経験することが大事だと思います。
    特に「動かない」「エラーが起きた」は怖がらず経験して下さい。
    そして、それを一つ一つクリアして下さい。
    焦っても良いこと無いですし、勉強中なのに「未熟で」と臆することも無いですよ。

    キャンセル

  • 2015/08/25 15:20

    ありがとうございます。
    PHPだけでも、できるのですか><

    はい、本と向き合っての勉強だけだったので、実務経験ある方のアドバイスは本当にためになります。もっと、経験して考えてトライアンドエラーを繰り返します。

    ざっくりとでよいのですが、anonymouskawaさんの場合だと、僕のやりたいことはPHPでどのように書くか教えていただけませんか?><

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る