※当サイトはアフィリエイト広告を含む場合があります

テクノロジー プログラミング

【Ringee開発記 #4】全体のDB設計をおおまかにしてみる②【夏休み毎日投稿 Day10】

こんにちは。小川智也です。

本日は夏休み毎日投稿 Day10ということで、Ringee(リンギー)を開発するに当たってのDB設計の2回目を行っていこうと思います。

最後までぜひお楽しみください。

智也
智也

この記事は夏休み毎日投稿2025として執筆されたものです。

夏休み毎日投稿2025のすべての記事は下記から閲覧いただけます。

智也
智也

小川智也と申します。Webプログラマーな中学2年生です。
このブログでは主にITやガジェット系の情報を発信しています!

▼ おすすめリンク ▼
X(旧Twitter)いえPay個人事業主ITパスポートお問い合わせ

詳細なDB設計

ということでいきなりですが、昨日の続きとしてDB設計を行っていきます。

最終的には以下のようになりました。

ringee_user (ユーザー)

  • ringee_user (ユーザー)
    • user_id ユーザーID PRIMARY VARCHAR 例:REU_69abcdefghijk
    • user_name ユーザーの名前 VARCHAR 例: 小川 智也
    • user_email メールアドレス VARCHAR 例: t.ogawa(at)ogatomo.net
    • created_date ユーザー作成日時 DATETIME

ringee_request (請求データ)

  • ringee_request (請求データ)
    • request_id 請求ID PRIMARY VARCHAR 例:RER_69abcdefghijk
    • user_id ユーザーID 例;REU_69abcdefghijk
    • name 請求名 VARCHAR 例;新PC購入
    • description 請求詳細 VARCHAR 例;新PC購入のための予算がほしいです。
    • status 現在のステータス INT 例:1
    • created_date 請求作成日時 DATETIME

ringee_reqitem (個別請求項目)

  • ringee_reqitem (個別請求項目)
    • reqitem_id 項目ID PRIMARY VARCHAR 例:REI_69abcdefghijk
    • request_id 請求ID VARCHAR 例:RER_69abcdefghijk
    • name 項目名 VARCHAR 例;4Kモニター
    • description 請求詳細 VARCHAR 例:デュアルモニターにする用
    • price 単価 INT 例:19800
    • amount 個数 INT 例;2
    • status 承認ステータス INT 例;1
    • created_date 項目作成日時 DATETIME

ringee_status (支払い状況)

  • ringee_status (支払い状況)
    • status_id 支払いID PRIMARY VARCHAR 例:RES_69abcdefghijk
    • request_id 請求ID VARCHAR 例:RER_69abcdefghijk
    • description 承認メモ VARCHAR 例:無駄遣いしないこと
    • status 支払いステータス INT 例;1
    • paid_date 支払い日時 DATETIME デフォルトNULL
    • paid_method 支払い方法 VARCHAR 例:銀行振込

ringee_link (支払いリンク)

  • ringee_link (支払いリンク)
    • link_id リンクID PRIMARY VARCHAR 例:REL_69abcdefghijk
    • request_id 請求ID VARCHAR 例:RER_69abcdefghijk
    • token リンクトークン VARCHAR 例:rifjanckqoritjgkalckokdowyarqlpg
    • created_date リンク作成日時 DATETIME
    • expires_date リンク有効期限 DATETIME

ざっとこんな感じになりました。項目いれると結構長くなりますね...

ER図の作成

dbdiagramで簡単にER図にしてみました。

智也
智也

めちゃくちゃ見やすいのでおすすめ

MariaDBに流し込む

それでは早速このデータをSQL文にして流し込んでいきます。

SQL文はほぼ書いたことがなかったのでChatGPTに丸投げしたらいい感じに書いてくれました。楽ちん

次にcompose.yaml側でinit.sqlを適用してくれるようにしときます。

/docker-entrypoint-initdb.d/ にsqlを突っ込んどくとコンテナの初回起動時に1回だけ適用してくれます。

無事に適用できました。

まとめ

いかがだったでしょうか。今回はDay10ということでデータベースの設計と適用を行っていきました。

今日で夏休み毎日投稿も10日目ですがかなり疲れますねこれ... 土日は除外しとくべきだったと内心後悔してます()

次回はいよいよフロントエンドをいい感じに作っていこうと思います!!

最後まで見ていただき、ありがとうございました。

智也
智也

この記事がいいと思った方はぜひ他の記事も見ていってください!

X(旧Twitter)のフォローもよろしくお願いします!

  • この記事を書いた人

Tomoya Ogawa

プログラマー / ブロガー / 個人事業主 / 中学2年生 / ガジェット Web系のプログラマー。「ブログで月1000円でも稼ぐ!」を目標に、学生という肩書を生かし最新技術をもっと身近に感じれるような情報発信をしています。

-テクノロジー, プログラミング
-,