0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

テーブル定義書管理方法(Excel vs スプレッドシート vs Notion vs マークダウン)

Posted at

はじめに

テーブル定義書の管理方法について比較検討してみたのでまとめました。
個人開発〜小規模プロジェクトで管理する場合を想定しています。

これが正解!というよりも、
それぞれの長所短所を理解して自分に合ったものを使うのが良いと思っております。
今回の記事では、その足がかりになればなと思います。

比較表

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です。

  • テーブル一覧
    スクリーンショット 2025-05-19 19.26.45.png

  • テーブル定義
    スクリーンショット 2025-05-19 20.42.53.png

小数点がある場合は、精度も必要になりますが、今回は特に予定がないので作っていません。
製造していくうちに必要なものが増えたら更新していきます。

おわりに

Excelオンラインは使ったことがないので、今回は比較対象外とさせてください。
外部データ投入は、マークダウンを除きすべて可能なので、色々試してみても良いかもしれませんね。

ここまでお読みいただきありがとうございます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?