ChatGPTとPythonで始めたスコア記録アプリ|SQLiteで2テーブルのDBを作ってみた話

ChatGPTとPythonで始めたスコア記録アプリ|SQLiteで2テーブルのDBを作ってみた話
目次

💬 スタート:やりたいことをChatGPTに伝えてみた

私:
「ChatGPTと一緒に、オフラインで使えるスコア計算アプリを作ってみたいんです。
数値を入力したらスコアを計算して記録できるツールって、自分にも作れますか?」

ChatGPT:
「もちろん可能です!PythonとSQLite、Tkinterを使えば、オフラインで動くシンプルなアプリが作れますよ。まずはデータベースから設計していきましょう。」


🗂 データの構成を一緒に考える

「ユーザーの基本情報」と「記録ごとの数値やスコア」を分けて保存したいと伝えると、ChatGPTはテーブルを2つに分ける構成を提案してくれました。

  • user_info:ユーザーの名前や生年月日など
  • exam_data:そのユーザーの記録(数値やスコアなど)

「同じ人が何回も記録を残せるようにしたい」と相談したところ、外部キーでつなげる仕組みを組み込んでくれました。


🧮 指示のコツ:ChatGPTとの対話もコツがいる

ChatGPTにうまく要望を伝えるには「目的」+「制約条件」をセットにするとスムーズです。

たとえば今回使った指示:

  • 「画面上では一般的な用語を使いたい」
  • 「スコアや数値は計算した上で記録できるようにしたい」
  • 「初心者にも読めるコードにしてほしい」

こう伝えることで、用途に合わせた提案や修正をしてくれるようになりました。


🧾 作成したデータベース構造(テーブル2つ)

🔹 user_info テーブル(ユーザー基本情報)

カラム名説明
user_idユーザーID(主キー)
name名前
kanaフリガナ
birth_date生年月日
sex性別(男・女など)

🔹 exam_data テーブル(記録データ)

カラム名説明
exam_id実施記録ID(自動採番)
user_id対応するユーザーID(外部キー)
exam_date記録した日付
age_at_exam記録時の年齢(生年月日から計算)
inout区分(例:外/内などモード)
area場所(例:測定場所など)
method方法(例:測定方法)
yyy数値Y(ユーザーが入力する数値)
height身長
yyy_resultスコア(自動計算された結果)

💻 実際に作成したPythonコード

実際のコード

import sqlite3

def init_db():
conn = sqlite3.connect('user_data.db')
c = conn.cursor()

# ユーザー情報テーブル(基本情報)
c.execute('''
CREATE TABLE IF NOT EXISTS user_info (
user_id TEXT PRIMARY KEY,
name TEXT,
kana TEXT,
birth_date TEXT,
sex TEXT
)
''')

# 実施記録テーブル(記録ごとのデータ)
c.execute('''
CREATE TABLE IF NOT EXISTS exam_data (
exam_id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id TEXT,
exam_date TEXT,
age_at_exam INTEGER,
inout INTEGER,
area TEXT,
method TEXT,
yyy REAL,
height REAL,
yyy_result REAL,
FOREIGN KEY (user_id) REFERENCES user_info (user_id)
)
''')

conn.commit()
conn.close()
print("✅ user_info & exam_data テーブルを作成しました")

init_db()


🔍 プログラムのポイント解説

sqlite3.connect('user_data.db')

データベースファイル(user_data.db)に接続します。初めて実行するときは、自動で作成されます。

CREATE TABLE IF NOT EXISTS

「もしテーブルがまだなければ作ってね」という命令です。何度実行しても上書きされません。

PRIMARY KEYFOREIGN KEY

  • PRIMARY KEY(主キー):重複できないユニークなID
  • FOREIGN KEY(外部キー):別のテーブルとつなぐためのキー(ここではユーザーID)

😲 学びポイント:「テーブルが2つあっても、DBファイルは1つでいいんだ!」

私が最初に驚いたのはここでした。

「テーブルが2つあるなら、.dbファイルも2つ必要?」
と思い込んでいましたが、SQLiteでは1つのデータベースファイルの中に複数のテーブルを持つことができるんです。

そのため、ファイルは user_data.db ひとつだけでOK。管理もシンプルになって安心でした。


✅ まとめと次のステップ

  • ChatGPTと一緒にアプリを設計することで、初心者でも迷わず構成を決められる
  • 用途に合わせてテーブルを分けて設計することの大切さを学べた
  • データベースは無事に完成!ここからは「入力画面」や「スコア計算」に進んでいきます

✍️ 最後に(感想)

ChatGPTがいれば、「コードが書けない自分でもアプリが作れるかも?」という想像が確信に変わる体験になります。
自分で作ったデータベースがしっかり保存されるのを見るだけでも、小さな達成感がありました。

次回は「入力画面を作る」「スコアを自動で計算する」といった工程に進んでいきます!
一歩ずつ、でも着実に、アプリが形になっていく感覚がとても楽しいです。

※私自身、プログラミングは勉強中の身です。この記事の内容は一例であり、動作や効果を保証するものではありません。ご了承ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

このブログ「Re:AI Life」では、
ChatGPTを中心に、AIをちょっとだけ生活に取り入れて、毎日がちょっとラクになる方法をお届けしています。
「AIなんてわからないよ〜」という方こそ大歓迎!
同世代の仲間として、安心して読める・試せる・相談できる場所を目指しています。
どうぞよろしくお願いします😊

目次