DB設計したいNight #2 に参加してきました

ども、いっせーです

昨日 DB設計したいNight #2 に参加してきました dbnight.connpass.com

業務でDB設計をするものの、あまり自信がなく力をつけたいなと思っていたところにタイムラインに流れてきたので参加ぽちーしました。

今回はイントロ、DB設計とER図の書き方の説明のあと、演習形式で行われました。
課題要件を20分程度で各自設計し、参加者の中から挙手1名と抽選2名の方に発表頂くといった形でした。

Q: お見合いサービス

f:id:issei126:20190125145203p:plain
お題1 お見合いサービス

要件は画像スライドの通り。
足りない要件は各自が想像して補完していくという形。 個人的には「お見合いサービス」と「マッチングアプリ」は違うと思っていて、
マッチングアプリ」だと申請時にメッセージが送れたりするので、どう捉えるかでテーブル設計は変わってくるのかなと思いました。
どういう要件があるんだろうなぁとかER図ってどうやって書くんだっけとかいろんなことを考えている内に時間が来てしまい、ざっと書いたのが以下(字が汚いし、ER図として成り立ってないのはご容赦くださいませ

f:id:issei126:20190125145838j:plain
自分が書いた設計

候補者テーブルがあって、申込者IDと受け取り側IDと承認フラグを持っているお見合いテーブルと、候補者とお見合いそれぞれに紐づくメッセージテーブルという形です。(羊文みたいなのは本文)

運よく発表者に選ばれたので、発表しコメントや質問をもらうことができました。 「この設計だとメッセージがきちんとお見合いが承認されたことが保証できないのでは?」みたいな質問だった気がします。
似たような設計の方もいたようで、なんだかほっとしました。

他の方の設計で「男性テーブル」「女性テーブル」と分ける案がでた時に「趣向性を管理するカラムやテーブルを考えたほうがいいかも」「多様性大事」という話も上がって気づきがあってよかったです。

Q: バスの時刻表

f:id:issei126:20190125145303p:plain
お題2 バスの時刻表

これも課題の受け取り方によって設計に差がでそうだなと思いました。

自分の設計を撮るのを忘れてしまったのですが、 記憶を辿るとこんな図を作った気がします

f:id:issei126:20190125164141p:plain
時刻表

でもこれだとA停留所-B停留所-C停留所という路線でAから出発してCに行きたい時はループして取得するんかなどうするんだろうみたいになってうまくいかんなぁというお気持ちになっていました。

発表者の方は乗り換えを考慮していたりして要件を広げて捉えていてすごいなと感じていました。

その後 id:Soudai さんが「自分似たようなものを作ったことがあるので」という感じでホワイトボードでER図をかいてくださいました。
「こういうケースが想定されるからこういうテーブルが必要だよね」という風に納得感のある説明でした。 動画撮っておけばよかったなぁ。

感想

どちらも自分の経験したことがなかったドメインだったので、想定される要件が並べられず設計を広げることができなかったなぁという印象でした。
20分だとちょっと短いかもと思いました。
「もっと要件を示してほしい」ということではなく要件を考える時間が欲しかったかなぁ?
もっと設計の引き出しを広げたいなと感じました

このツイートで紹介されているものを見るのはよさそうだなと。


当日の資料はこちら
参加された方の発表内容はこちら

次回も都合が合えば参加したいです!