前のパートに戻る 完了して次のパートへ  

  0-3 techpit-matchの設計を考える

今回のパートではtechpit-matchを作る上でどのように設計を行うかを解説して行きます。

必要な情報の洗い出し


今回のコースで開発する機能は以下のようになります。

- サインアップ/サインイン機能
- プロフィール編集機能
- マッチング機能
- チャット機能

これらの機能を開発する上で必要な情報を書き出してみます。

まとめると必要な情報は以下のようになります。

- ユーザーの情報
- リアクションの情報
- チャットの情報

情報の関係性を考える


マッチングに関して

ユーザー同士のマッチングの関係性を考えてみると以下のようになります。

- ユーザーは複数の人にリアクションをつけることができる
- お互いにいいねのリアクションした人をマッチング成功として扱う

このような関係のことを「多対多の関係」と言います。 多対多の関係をつくるためには中間テーブルが必要になります。 詳しくは[多対多] 中間テーブルとはなんぞや – gomokulog を参考にしてみてください。

チャットに関して

チャットのデータをもう少し詳しく分解してみましょう。 すると、チャットの情報は以下のようになります。

- 誰が発言したのか
- なにを発言したのか
- どこで発言したのか

誰が何を発言したのかは、1つのテーブルでまとめられそうです。 そして、会話している場所というのはマッチングした人同士がいる場所を指します。 これらをデータで表現すると以下のようになります。

テーブル設計


先ほど、考えたマッチングとチャットの情報の関係性を考えました。 次にそれを踏まえた上で他の情報を含めた全体のテーブル設計を行います。

ER図に関しては、こちらのURLを参考にしてください。

若手プログラマー必読!5分で理解できるER図の書き方5ステップ

今回作成するtechpit-matchのテーブル設計すると以下のようになります。

1ユーザーは複数の人にリアクションをつけることができ、マッチングしたもの同士はチャットができます。

今回開発するコードの完成版


ttechpit-matchというフォルダがあるのでそちらをダウンロードすることができます。

完成版のダウンロードはコチラ

議論
2 質問
このコースの評価は?