# データベース設計ふりかえり

ブートキャンプのデータベース設計の課題でかなり時間がかかったので振り返りとして記録しておこうと思います。
※フィヨルドブートキャンプ受講生の方はネタバレ注意

課題の内容

Twitterの主な機能をもとにER図を作成するという内容でした。

対象の機能
- ユーザを表示する
- ツイートする
- ツイートに返信する
- リツイートする(引用リツイートも)
- フォローする
- フォロー一覧を表示する
- フォロワー一覧を表示する
- リストにユーザーを追加する
- リスト一覧を表示する

最初の提出物と最終の提出物

最初の提出物

ざっと資料を読んで適当に作ったER図がこちら。

最終の提出物

学んだ事

リプライについて

  • 1個のツイートに対して複数のリプライがあるという関係
  • リプライもすべて「ツイート」
  • Repliesテーブルに切り出し、FKとしてtweet_idをもたせることにしました

RT/引用RTについて

  • RTも引用RTもまた「ツイート」
  • フラグを導入して判別
  • フラグが0のときRTされていない、グラグが1の時、RTされている

フォロー/フォロワーの関係

  • 自己参照している
  • Relationshipという中間テーブル

ユーザーとリストの関係

  • ユーザーはリストを複数持っている
  • リストはユーザーを複数持っている
  • 多対多の関係になっている
  • Users_Listsという中間テーブルを作って1対多の関係になるようにする

参考