ハロー、ききです!
「自分の作りたいものを作っていこう!」ということでアプリ開発日記を定期的に投稿していこうと思います。
今回は私の開発日記第一弾ということで、テーブル定義アプリについて書いていきたいと思います!
テーブル定義アプリを作成する理由
突然ですが、テーブル定義ってどう管理してますか?
Excelで管理していたり、設計書に書いていたり、DDL直接みたり。
まぁ、個人でガツガツ作成している方なんかはそもそも作っていなかったりしますでしょうか?
現場やプロジェクトによっては色々なツールを使っていたりもすると思います。
ただ、テーブル、カラムが増えてくると、
- どれが最新の定義なのか
- このカラムはいつ追加されたのか
- 物理名と論理名を毎回確認するのが面倒
- DDLを作るときに手作業が多い
など思うことがあります。
便利なツールなどを探していると、自分がエンジニアであることを忘れてしまいますが、
「そうだ、自分で作れば良いんじゃん!」と至り、アプリを作成することにしました。
Excelではだめ…だったんだ
テーブル定義をExcelで作っているところは現場や、プロジェクトでもよくあるのではないでしょうか。
ましてや、個人で使うので全然Excelでも良かったんです!
ただ、私が私生活で使用しているPCがMacなのと、Excelを購入していないこともあり、断念しました…
LibreOfficeや、スプレットシートなど代用はあったのですが、VBAが使えないのと、操作性が好きじゃないためこちらも断念しました。
Excelさん、なんであんなにお高いの、、、
システムの構成について
さて、システムを作っていくにあたって、どんな言語を使うか気になることでしょう。
以下の言語を使います!ばーん!!
バックエンド:Python
バックエンドにはPythonを使用します。
私はバックエンドはJavaしか経験がなかったので、勉強も兼ねてPythonをやってみようと思いました。
フレームワークにはFastAPIを採用しています。
Djangoじゃないのって思うかもしれないですが、別に管理画面も必要ないですし、実行速度の面でも今回はFastAPIにしました。
そして、今回はSQLAlchemyを使ってORMを採用しています。
個人開発では開発コストが高いですが、私自身がSQL文を書いてクエリ発行するより好きなので、採用しました。
ソースからデータの流れが追いやすいのが良いんですよね、あれ。
そうそう、ORMはSQLわからなくてもできるって見かけたことありますが、あれは嘘です、信じないでください…。
確かに、SQLは直接的には書きませんが、SQLの知識は必要です。
SQLわかってない人が喜んで使ってるなんて事実なら怖すぎて震えちゃいます、稲川淳二の怖い話より怖いです。
データベース:SQLite
今回はSQLiteを使用します。
MySQLやPostgreSQLもありますが、今回は、exe化してデスクトップアプリとして使用できるようにしたかったので、
サーバーを必要としないDBを選びました。
サーバーを必要としないので、プロジェクトの中に作り込めるのがまとめれて助かるし、ローカルで完結させれるのがぴったりでした。
フロントエンド:React
今旬なReactを使って画面を作ります!
今回一覧表を作るのでグリッドを使うのと、コンポーネント化して画面のパーツごとに作れる使いやすさが良さそうなので採用しました。
そして、バックエンドとのやりとりもReactとFastAPIで相性がいいのも良い点です。
こんな感じで作っていこ〜!
と言うことで、まずはこの構成でテーブル定義アプリを作っていきます。
DB、テーブル、カラム一覧の表示と、登録ができるところから始める予定です。
次回は、テーブル定義で管理したい情報を整理して、どんなテーブル構成にするかを考えていきます。
それでは、最後まで見てくれてありがとです!

