この記事は ZOZO #3 Advent Calendar 2021 3日目の記事になります。
DBのテーブル設計ってみなさんどうしていますか?
最初に図に書いて、あとは実テーブルみれば、、、というのが多いかと思います。
SchemaSpyというツールを使うと、実テーブルからER図をHTMLで自動作成してくれます。
俯瞰的にテーブル設計を見直したい場合などに使うとよいでしょう。
使い方は簡単で、
githubからjarファイルをダウンロードできますので、これを実行するだけです。
java -jar $PWD/lib/schemaspy-6.1.0.jar -t h2 -db ./testdb.db -u sa -o ./build/schemaspy -dp ./lib/h2-1.4.200.jar
引数は以下の通り
-t: データベースのタイプ
-db: 接続するデータベースの名前
-u: データベースユーザーID
-o: 出力ディレクトリ
-dp: JDBCドライバ
詳細はドキュメントを参照してください。
私達のチームとしての使い方は、gradleにタスクを仕込んで、CIで自動生成したり、h2でFlywayを毎度migrateして、Flywayのテストを兼ねて実行したりと言った使い方をしています。
また、テーブルに設定したコメントも表示してくれますので、CREATE TABLEではコメントを積極的に入れるといいと思います。ファイルのコメントは読み取ってくれないので、DDL内にコメントを仕込む必要があります。
CREATE TABLE stores
(
store_id INT NOT NULL comment 'ストアID',
store_name VARCHAR(100) NOT NULL comment 'ストア名',
pref_id INT NOT NULL comment '都道府県ID'
PRIMARY KEY (store_id)
FOREIGN KEY (pref_id) REFERENCES prefs(pref_id)
) comment =' ストア';
こんな感じで出力されます。
明日は、@naoya_s による「Code With Meについて書く」です。同じ開発チームのメンバーによる記事になります。モブプロでCodeWithMe使えるのかどうなのか?お楽しみに!