はじめに
テーブル定義書の管理方法について比較検討してみたのでまとめました。
個人開発〜小規模プロジェクトで管理する場合を想定しています。
これが正解!というよりも、
それぞれの長所短所を理解して自分に合ったものを使うのが良いと思っております。
今回の記事では、その足がかりになればなと思います。
比較表
Excel | スプレッドシート | Notion | マークダウン | |
---|---|---|---|---|
共有 | △ | ◎ | ◎ | × |
差分比較 | △ | ○ | △ | ◎ |
印刷 | ◎ | ○ | ○ | ○ |
項目選択(プルダウン) | ○ | ○ | ○ | × |
関数の有無 | ○ | ○ | × | × |
共有
Excel | スプレッドシート | Notion | マークダウン | |
---|---|---|---|---|
共有 | △ | ◎ | ◎ | × |
クラウド上で管理している スプレッドシート
と Notion
がやや優勢。
Excel
は共有ブックの存在があるので、×ではありませんが、共有フォルダに入れておかないといけなかったり、共有ブック慣れしていないメンバーがいると、ローカルにコピー→上書きされるという悲しい事故も。
マークダウン
は特に機能を持っていないので共有×にしていますが、gitなどのバージョン管理ツールを用いる前提であれば、デメリットではありません。
むしろ、gitで一元管理できるということはメリットになり得ますかね。(Excel
も同じく)
差分比較
Excel | スプレッドシート | Notion | マークダウン | |
---|---|---|---|---|
差分比較 | △ | ○ | △ | ◎ |
比較の面では、テキストベースの マークダウン
が圧倒的優勢ですね。
スプレッドシート
も見やすい部類だと思います。
Excel
は比較ツールの導入が必要なので、△にしました。
Notion
は有料版であったり、やや見にくい気がしますが、慣れの問題でしょうか。
印刷
Excel | スプレッドシート | Notion | マークダウン | |
---|---|---|---|---|
印刷 | ◎ | ○ | ○ | ○ |
Excel
はやはり強いですね。ヘッダーフッターに色々入れられたり、柔軟に調整可能です。
紙文化が残っているのであれば、Excel
はまだまだ強いと思います。
他はPDF出力→印刷で可能です。柔軟性はあまりありません。
項目選択(プルダウン)
Excel | スプレッドシート | Notion | マークダウン | |
---|---|---|---|---|
項目選択(プルダウン) | ○ | ○ | ○ | × |
Excel
スプレッドシート
Notion
にはあります。
どれも色を変えられたり、目立つようにできます。
Excel
スプレッドシート
は範囲指定できるので、追加したいときも簡単です。
Notion
はその点、やや不利ですかね。
マークダウン
はテキストベースなので、そういった機能はなく、データ型を定義するときは、コピペか直打ちになります。
関数の有無
Excel | スプレッドシート | Notion | マークダウン | |
---|---|---|---|---|
関数の有無 | ○ | ○ | × | × |
ここは個人的にかなり大きいのですが、migration文などを生成するのに、関数がとても便利です。(DBファーストであれば、Create文やAlter文も)
ですので、私個人としてはこの機能がある Excel
スプレッドシート
の2択になります。
テーブル定義書から作成するようにすると、定義書が更新されていないということもなくなりますから、メリットが大きいと思っています。
結局自分に向いているのはどれ?
Excelが向いている人
- 印刷をしなければならない
- 管理者がプログラマというよりマネジメント寄りのタイプ
- マクロなどの資産がある
- gitで管理したい
スプレッドシートが向いている人
- 複数のデバイスから簡単に確認したい
- Excelに慣れているけど、Excelから脱出したい人
- 関数やGASを使いたい
- テーブル数が比較的少ない
- 多い場合は、表紙とかにリンク貼るなどの対応をすると便利。Excelも同様
Notionが向いている人
- Notionに慣れている
- ドキュメントを一元管理したい
- 新しいサービスを使ってみたい
マークダウンが向いている人
- テキストベースこそ至高の人
- PlantUMLなどでER図作りたい
- gitで管理したい、比較も楽に見たい
ちなみに、マークダウン好きであれば、asciiDocもおすすめです。
プレーンなマークダウンより、ドキュメントに特化しており、テーマファイルでフォントなども良い感じに設定できます。(個別で設定も可能)
ただし、PDF出力に関して、日本語とアルファベットが入り混じるとやや謎のスペースが生まれてしまう問題があります。(2025年時点)
比較してみて個人的な話
私は今回、スプレッドシートを選択しました。
- 関数が便利
- 個人開発でテーブル数はそこまで多くない
- 他人と共有しない
- 複数のデバイスで確認したい
スプレッドシートで作成したテーブル定義書は以下のような感じです。
テーブル一覧や、各テーブル定義のところで、migrationのartisanコマンドや、migration内に記述するコードを生成しています。
※PHP Laravelです。
小数点がある場合は、精度も必要になりますが、今回は特に予定がないので作っていません。
製造していくうちに必要なものが増えたら更新していきます。
おわりに
Excelオンラインは使ったことがないので、今回は比較対象外とさせてください。
外部データ投入は、マークダウンを除きすべて可能なので、色々試してみても良いかもしれませんね。
ここまでお読みいただきありがとうございます。