VTRyo Blog

一歩ずつ前に進むブログ

【社内勉強会】SQLアンチパターン第5章 EAV(エンティティ・アトリビュート・バリュー)

社内でSQLアンチパターン勉強会実施中。今回は自分の担当なのでその成果物。


このDBはメタデータの変更なしで
拡張可能です

実行時に新しい属性を定義できるらしいっす

え、それってEAVじゃないですか。

リレーショナルデータベースは
そういう柔軟性をサポートしてないはずです。

任意に拡張できるように設計したんだけど…

(^o^).o0これあかんやつや

SQLをテストできる環境を用意

DockerでMySQLが実行できればいいやと思ったので、以下の方法で作成。

$ docker container run --rm -d \
                  -e MYSQL_ROOT_PASSWORD=mysql \
                  -p 43306:3306 --name mysql mysql:5.6
$ mysql -h 127.0.0.1 --port 43306 -uroot -pmysql

mycli使うなら

余談だけど、ローカルでさくっとMySQLをいじるなら個人的にはmycliが好き。

www.mycli.net

$ brew install mycli
mycli -h 127.0.0.1 --port 43306 -uroot -pmysql

mycliは色々と補完してくれる。

f:id:vtryo:20200411181958p:plain
mycli

というわけでSQLアンチパターンで出てくるSQLを実際に打てるようにした。

資料

作成した資料はこちら。

参考

dev.mysql.com

iwasiman.hatenablog.com