はじめに
今回のハッカソンで、バックエンド担当でER図を作成しました。
そのことに関して色々記載していこうと思います。
※この記事はRareTECH関係者向けに書いてる記事なのでその点だけご了承いただけると幸いです。
ER図を書こうと思った理由
約4年前、ER図を書く機会があって、その時のレビューで
ボコボコに指摘されました。
その時のレビューがトラウマになって、それ以降ER図を書くことがありませんでした。
ただあれから4年、「もうそろそろ克服しないとあかん‼️」と思ったので
ER図を書かせて欲しいとチームメンバーの皆さんにお願いしました。
克服するために何をしたか?
ここからER図を上手く書くためにどのようなことをしたか記載していきます。
講義動画
RareTECHの講師がER図について説明する講義がありましたので
まずはこちらの動画を視聴しました。
(具体的な動画名等はこの記事で書くのは控えさせていただきます🙇♂️)
要件定義・機能一覧の洗い出し
個人的に、この項目がER図を作成する上で最も重要だったと感じています
まず、どのようなサービスを作るのか、チーム全員で議論しながら要件定義を行いました。
次に、必要となる機能を一つずつ洗い出していきました。
ありがたいことに、今回はメンバーの一人がサービスの骨組みをしっかりと考えてくれていたため、それをベースにチーム全員で話し合いながら肉付けしていく形で進めることができました。
こうした 要件定義と機能一覧の洗い出しを丁寧に行ったことが、最終的にER 図やテーブル設計をスムーズに決められた大きな要因だったと思います。
ツール選び
今回はdraw.ioを選びました。
レイアウトの自由度が高く、テーブル配置も自分のイメージ通りに作りやすかったからです。
ER図作成
作成する際に、以下のことを意識しました。
- テーブル名から役割が明確に分かるよう、命名に気を配った
- テーブル同士の関係性を正しく整理する(1 対 1、1 対多など)
特に多対多の関係は、中間テーブルを作成した - カラム名の意味を日本語で記載し、役割を明確にする
- 主キーと外部キーを明示する
- 各カラムのデータ型について、口頭で、説明できるレベルで理解する
- AUTO_INCREMENTやNOT NULL 制約が必要なカラムを明確にする
- 論理削除 or 物理削除にするか明確にする
チーム内レビューを受ける
ある程度形がまとまった段階で、まずチームメンバーに
自分の ER 図をレビューしてもらいました。
このレビューを通して、要件定義や機能一覧についての認識をメンバー間で再確認することができ、結果的に設計の方向性をそろえる良い機会になったと思います。
メンターレビューを受ける
最後にこのER図で問題ないかメンターレビューを受けました。
こちらは設計全般に言えることですが、ER 図のレビューはチャット上の文章だけで行うより、対面でのレビューを強くおすすめします。
理由は対面であれば、疑問点をその場ですぐにメンターに質問できて、口頭で説明することにより自分の理解も深まるからです。
ちなみにRareTECH は心理的安全性を大切にしているだけあって、レビューの際にメンターから詰められるような指摘はほとんどありませんでした。
むしろ「どうすればこの ER 図がより良くなるか」をメンターと一緒に考えながら進めていく印象が強かったです。
仮に改善点の指摘があったとしても、言葉を選びながら丁寧に伝えてくださるので、過去の私のようにレビューでトラウマを感じるようなことはまずないと思います。
その点は安心していただければと思います。
さいごに
今回のハッカソンで長い間トラウマだったER図を克服することが出来ました。
これもひとえにRareTECHの運営の皆様並びにチームメンバーのおかげだと思います。
この場を借りて改めてお礼を申し上げます。
ありがとうございました🙇♂️
参考資料