1. TRY-CATCH FM
  2. 【エンジニアの悩み】ER図何の..
2021-08-24 18:21

【エンジニアの悩み】ER図何のツール使って作ってる?

みなさんプロジェクトでER図 (Entity Relation Diagram)は何のツール使って作ってますかね。これ、結構ツールとして数があるので、デファクトスタンダードがないような気がするのですが、やっぱりDBの状態からとかmigrationファイルのSQLから生成してくれるほうが、DBと同期が確実に取れるのでいいかなーと思ってます。

--

Peingを開設しました!質問や取り扱って欲しいテーマなど送っていただけると僕たちのモチベーションが爆上がりします。

https://peing.net/ja/9045551273053f#question-form

See Privacy Policy at https://art19.com/privacy and California Privacy Notice at https://art19.com/privacy#do-not-sell-my-info.

00:01
はい、みなさんこんにちは。TRY-CATCH FM第60回です。
お願いします。やっていきましょう。
お願いします。
なんか今、講師編やってるじゃないですか。
はい、はい。
講師編見てる?見ないよね、あんまり。
あんま見てない。地元の輪を負けた。
そうそうそう。俺も地元どこ出てたんだ?
福岡なんだけど、西日本なんとか高校っていう、なんか知らんとこが出てた。
あんまり地元の高校知らんとは知らないけど。
俺も広島地元だけど、広島新庄出てて、スニーカーズののが来てましたね。
でさ、まあ今年はさ、なんか、講師編熱中症っていうよりか雨が多くて、
なんかすごい予定が狂ってるのかな、多分。
なんかニュースとか見てる感じだと。
そうね、海外レベルだからね。
そうそうそう。で、あの、講師編球場でやってるじゃないですか、講師編って。
うん。
で、まあ講師編球場って球場だから屋根なくて、だから雨の、天候の影響もろに行きやすくて、
でなんか結構前からね、多分その、ドーム開催にしたらエントちゃうみたいな、技能ね、あるんだけどさ、
なんでしないんだろうね、あれって。
はいはい。
熱中症対策的な意味でも、まあドームで涼しいとこでやった方がさ、
まあその出てる側もパフォーマンス出るしさ、と思うんだけど。
そう、まあ昔から言われてるのはいるけど、よく聞く話としてはやっぱり講師編ってものに憧れてるから、
あそこでやりたいっていうのがらしいけど、まあ毎年やるなら屋根つければって思いがちょっとあって。
あとはなんだろうな、あの、割と体育会計ってそういうとこはあるとイメージあるけど、なんか昔からやってんだからみたいなやつでさ。
それなんだよな。
なんか今回のコロナみたいなもんってさ、そういうなんか昔からやってるからで間違ったことを昔からやってたのに、
つきそうそうとする人がどんどん、しょうがなく削られてってるじゃん。
もう役所が反抗も使えませんって言ったりとかさ。
そういうなんか、まあやらなくても、いややってるせいで不便だったものみたいとか、
人が困ってたものをなくしていけてるような強制力がないと難しいんじゃない。
あの、昔の人がこれを残したいみたいな思いがあった。
でもさ、年々こうやっぱさ、熱くなっていってるから、本当にこう誰か、その高校中児がぶっ倒れないとなんか変わらないっていうのはちょっとね、よろしくないよね。
03:02
ぶっ倒れてるでしょ、たぶん。
ね、ぶっ倒れてるでしょ。
ゼロってことはないよ、そりゃあきっと。
ゼロってことはないよ、そりゃあきっと。
ね。
うん。
オーセラドームとかでやるのがね、いいんだと思うけどね。
だって観客だって危険じゃん。観客の方が数多いから絶対観客の方が倒れてるし。
ね、それはあるでしょうね。
でも実際ね、今年の東京の地区予選とかは東京ドームとかでやってたな、確か。
あれ、でも地区予選って別に全部甲子園球場じゃないよね。
あ、もちろんもちろん。
うん。
でも全然高校野球でも、今まで確か東京ドームあんまやってなかったんだよね、確か。
うんうん。
でもちょっとやっぱその熱中症とかっていうところを考えると、ドームの方が安全だよねって話には普通になるから。
試合感覚とかもさ、上の方に勝ち進んでいくと、プロ野球選手だと絶対やらないような過密スケジュールでその高校のエースが使いつぶされるみたいなことが起きるらしくて。
今回も雨で巡演になりまくって、スケジュール的に厳しいっていうのはあるらしいんですよ。
なぜなら、もうお尻の次の日とかにはプロ野球が入ってるから、半身戦が。
なるほど。
だからもう詰めて詰めてやらなきゃいけないみたいな話になって。
で、なんかそのどうやってその甲子園を終わらせるかみたいなところのアイディアの一つに、なんか準決勝と決勝を同じ日にダブルヘッダーでやるみたいなアイディアもあるらしくて。
いやーそれいいでしょみたいな。
なんかあれだよね、戦力が変わっちゃうんだよね。
前の試合を確実に勝つっていうのを考えつつ、できるだけ体力を残すみたいな変な話まで。
そうそうそうそう。
繋がっていくんだなみたいな。
スポーツのアマチュア大会とかでは同じ日に何試合かあったりするから、ない話ではないんだけど、なんかこれ急にやるのも違うじゃんっていうのもあるしね。
まあだから、そうね、教皿ドームやっちゃえばいいと思うんだよね。
だってその、みんな甲子園に憧れてるからとかって言うけど、そういうの5年10年やったら、もうみんな教皿ドーム行きてーってなるから多分。
そうね。
うん。
そんな気はするけどな、わかんない。僕野球少年じゃなかったから。
いやいや、俺野球少年だったからなんとなくわかると思う。
まあ当分野球は離れてるからあれだけど、まあそんなもんでしょう、普通に。
そうね、なんか、なんかはやったほうがいいよね。なんか何も進んでない気がする。
知らないだけかなっていう。
まああとは単純に高新球場に屋根をつける、工場するって話ですね。
06:06
全然ありだと思うけどね、なんかそれで損なわれる何かがあるならまたちょっと相談っていうかさ、設置案とかを探す話になるけど、
プロ野球だって辛いでしょ、夏って。
辛いと思うよな。
シーズン中でしょっていう。
東京ドーム嬉しいらしいからね、涼しいから。
ああ、だよね。雨でも別にね、問題ないわけだしね。
まあこういう話があるみたいですよっていう雑談でした。
本編ね、本編あれなんだけど、なんか最近プロジェクトでね、ER図を描こうというタイミングがあって、
あんまり今まで描くタイミングがなくて、なんか他の人がやってたりしたから、
ツール何がいいかなと思って探してたんだけど、
ミヤって例えば何か普段描いてる?何使ってる?
これね、そこ結構永遠の悩みではあるんだけど、
まあ今一番使ってるのはやっぱDRAW.IOで手書きですね。
あともしくは、これあんまり気が乗らないけど、ER MASTERっていう、
エクリプスのプラグインかな。
確かそれはSQLから作れるんだっけな、ER図を。
だからその2つくらいかな、今思い当たるやつで言うと。
SQLから作れるならそれはそれでいいかもしれないな。
僕もそのDRAW.IOをVS Codeのプラグインで入れてやってみてとかやって、
なんか慣れてないかなかもしれないけど、ぽちぽち描くのって結構めんどくさいし、
時間かかるなっていう思いがしながら。
綺麗に描けるからね、それはいいなとは思うんだけど。
あとはプラントUMLっていう、これもVS Codeのプラグインにもあるんだけど、
コーディング感覚で書けるっていう、
エンティティの書き方の形が決まってて、
記号をこれでエンティティ名書いて、
この括弧で囲った中にこの記法でカラムを書いていくと、
カラム定義できて、PKはこう書く、FKはこう書くとか、
リレーションはこう書くみたいなやつをプログラミングライフに書けるから、
例えばExcelでエンティティの項目定義一覧とかを作ってたとしたら、
それをExcelの関数とかでその記法に直しちゃって、
当てはめるとかでも結構簡単にその記法に直せば、
09:00
画像として出力できるっていうのがあるんで、
割といいんだけど、まだ使い始めだから、
リレーションの付け方?
このエンティティとこのエンティティを1対Nで繋ぐとかできるんだけど、
項目をこの項目とこの項目で繋ぐっていうのができてなくない?みたいなのがあったりとか、
位置の指定が自動というか、ある程度向こうが判断して場所を決めるから、
意味的に近いと思ってたものが必ずしも近くに行かないというか、
そういう自動だからこそのうまくいかなさ?みたいなのはあったりするかな?
今、ERZ自動生成で検索してみると、
スキーマスパイっていうやつが結構出てくるな。
これ使ったことないけど、
これ何?
スキーマスパイとは指定したデータベースのテーブル情報へリレーションなどを
よしなにHTMLに出力してくれるツールで、
メッセージとかが使ってるんだ。
なるほどね。
もうすでにあるものを足すって感じなのね。
スキーマスパイのいいところ、UIが綺麗、あとDockerで作成できる、
あと指定したテーブルの関連する部分だけを表示させてくれる。
これいいかもね。
そうだね。
設計を考えるときに、
実際にSQL書いたりとかDB作ってみてから調整したいみたいな人は、
SQL書きながらこれで出力してみてみるっていうのもありかもね。
仕事でっていうか、
アプリケーションによって、
マイグレーションツールって違ってたりするじゃないですか。
要は、サーバーサイド言語のほうで、
データベースを作るためのSQLを
SQLを置いとく?サーバーサイドのほうに?
サーバーサイドのほうにじゃないか。
DBを修正するときには、マイグレーションファイルを書き換えて、
書き換えてっていうか追加して、コマンドを実行してDBに反映させるみたいな。
マイグレーションツールって、そのアプリケーション語ってあると思うんだけど、
それもこのスキーマスパイっていうのは吸収した上で、
マイグレーションツールからER図を作成してくれてるっぽいな。
結局、多分それってあれだよね。元のDDLみたいなのがあって、
12:04
それにパッチみたいなDDLがいくつか当たったのを、
全部取り込んだものを出してくれるってことだよね。
多分そうだね。
俺仕事でコトリン書いてたときは、
フライウェイっていうマイグレーションツールを使ってたんですよ。
そのフライウェイでER図を作ってくれてるのかな。
作ってくれることもできるのかな、このスキーマスパイだと。
やっぱり出来立て自動化したいですよね、こういうのって。
そうだね。やるのめんどくさいからね。
これってあれだよね。割と先に設計するんじゃなくて、
設計の段階でもDB試しに作ってみちゃうっていう人がより嬉しい感じだよね、多分。
設計から起こすっていうよりは。
そうだね、そうだね。
ER周り、DBの設計周りって、設計したもののドキュメントを作った過程の成果物から、
SQLとかDDLを生成するっていう方向性のものと、
逆に今あるDBからER図出してあげるとかSQL生成してあげるとか、
そういうものがあるじゃん。
それの現物からドキュメント出してくれるものだよね、きっと、このスキーマスパイって。
そうだね。
どっちがいいんだろうっていうのも割とあるよね。
割とあるよね。もうDB作る方が楽な人からはどっちの方がいいのかなって感じするし。
いいんじゃない?
結局その、
ER図が結局ドキュメントになるわけでしょ?
なんかそこさえできてれば、
設計書なんていらないんだよねっていうのが俺の意見なんだけど。
SIRやってるかどうかみたいなところで、
結局たくさんの承認フローが先に設計を全部終わらせないとみたいなのがあるっていうのがね。
でもさ、そのフローがあったとしても、先にSQL勝手に作っておいて、
そこからDB作って、そのDBからER図作って、そのER図を納品すればいいわけでしょ?
そうだね。
承認おりたらそのままいくみたいな。
そうだね。図を作る感じで箱をポチポチ作るよりも、SQL書く方が俺早いなって思う人はこういうの使った方が絶対幸せだよねっていう。
だから立物作った方がやっぱね、間違いないと思うんだよね。
そりゃあそう。
15:02
SQLって机上の空論だから、そこで何か良さそうに見えても、実際何か立物に書き起こしてみたら、
あ、ここやってねーみたいなことって結構あったりするから、
そういう意味では立物を作ってからそれを設計書にする方が確実な気がするな。
そうだね。
ということでやっぱりそういう機能がある方が嬉しいよね。
DBとERの双方向が最高ではあるけど、
どっちかっていうとDBからERっていうのが、開発者としては作りやすい幸せなのかなって感じが。
もうパワフルとかは悲しみしかないでしょうね、これは。
直すの大変だし。
直すのが大変すぎる。
直すのが大変っていうか、ほぼ無理だから、実際に動いているDBと整合性を取るのみたいな。
そうね。
下で忘れるから、自動生成でしょうね。
ドローアイオンは一応いろいろ、どれからも指定してどう切り替えるとか、修正もちょっとやりやすかったような気がしないでもないかと。
プラントUMLはコーディングっぽく書いてるから、
エディターでできることはできるっていう意味で、
時間とかでどんどん修正しとかはしやすいっていうのはあるかな。
少なくともGit管理できるんであれば、
SQLからYAMLみたいなのを自動生成するCIみたいなのを作って、
めぐりめぐってER図が自動生成できるんだったら、全然問題ないかなっていう気がするね。
そうだね。Git管理っていう意味では、
やっぱりSQLからやるか、さっきのプラントUMLみたいにテキストとして行単位で変更ができるものにするか、
どっちかになるかな。
俺もちょっと当分ER図というかツールを開拓しなかったんで、
このスキーマパイ使ってみようかな。スキーマスパイか。
スキーマスパイ。なんでこの名前なんだろうっていうところもあるけど、
DBのやつ読み込んで中を探っていくみたいなイメージ。
探れるってことでしょうね、たぶん。
MySQL、MariaDB、Gosugle、SQL Serverとかはいけるのか。
無料系は割といけるけど、オラクルとかはないって感じか。
オラクルとかはなさそうです。
あとNoSQLもダメってことね。
別のタイルはもっとありそうだけど。
そうだね。
18:01
今後スキーマスパイとかも機械で使っていきたいですね。
そうですね。じゃあ今日はこんな感じで終わりましょうか。
はい。
ありがとうございました。
ありがとうございました。またね。
18:21

コメント

スクロール