inflearn logo
知識共有
inflearn logo

正規化はわかるけれど、注文・返金・精算テーブルとなると途方に暮れてしまうなら――要件1/38から38/38まで、コマースデータモデリング実践

DB設計の原則は学んだけれど、注文・返金・精算はどうテーブル化すればいいのでしょうか?一つの注文が決済・一部キャンセル・返品・返金・精算まで流れるよう、スキーマを41段階で変更しながら、38件の要件を一つずつクリアしていきます。

1名 が受講中です。

難易度 中級以上

受講期間 無制限

MySQL
MySQL
database-modeling
database-modeling
data-modeling
data-modeling
database-design
database-design
backend
backend
MySQL
MySQL
database-modeling
database-modeling
data-modeling
data-modeling
database-design
database-design
backend
backend

この講座で身につくこと

  • 価格・オプション・仕入先・手数料率が変更されても、過去の注文や精算内容が変わらないよう、スナップショット用の項目を設計します。

  • 注文1:決済N、部分キャンセル、冪等キー、決済代行会社との照合で決済記録を一致させます。

  • キャンセル・返品・交換をクレームおよびクレーム項目としてモデル化し、状態遷移ルールをデータによって強制します。

  • クーポン割引とポイントを商品ごとに按分し、端数処理ルールを定めて、返金額の計算根拠を残します。

  • 一部出荷・仕入先直送・返品回収を一つの出荷構造で追跡し、出荷数量を検証します。

  • 購入確定基準の売上認識、仕入先精算、締め後の調整行、監査ログを設計します。

  • 金額・数量の整合性を検証するSQLを12種類毎日実行し、新たな要件は回帰テストとともにスキーマ変更として取り込みます。

DB設計の原則は学びましたが、注文・返金・精算はどのようにテーブル化すればいいのでしょうか?

1件の注文が決済・一部キャンセル・返品・返金・購入確定・精算まで進むよう、仮想ショッピングモールのスキーマを41段階のマイグレーションで変更しながら、38の要件を一つずつクリアしていきます。すべてのSQLをDocker MySQL上で直接実行します。

設計講義で学んだ正規化をそのまま適用すると、注文データではかえって問題が起きます。商品の価格を上げたら過去の注文金額まで変わり、クーポンを使った注文で靴下を1足キャンセルしたら455ウォン多く返金され、締めた精算書が再契約後に再計算されます。この講義では、こうした事例を毎回、実際にSQLを実行してまずお見せし、その要件を反映したスキーマ変更を段階ファイルで適用したうえで、要件チェックと整合性検証SQLで確認します。ひとつのスキーマとひとつの注文をめぐる話として、最初から最後まで一貫して進めます。

この講義を終えると

  • 価格・オプション・サプライヤー・手数料率が変わっても、過去の注文や精算内容が変わらないように、スナップショット用の項目を設計します。

  • 注文1:N回の決済、部分キャンセル、冪等性キー、決済代行会社との照合で決済記録を整合させます。

  • キャンセル・返品・交換をクレームとクレーム項目としてモデル化し、状態遷移ルールをデータで強制します。

  • クーポン割引とポイントを商品ごとに按分し、端数処理ルールを定めて返金額の計算根拠を残します。

  • 部分出荷・仕入先直送・返品回収を一つの出荷構造で追跡し、出荷数量を検証します。

  • 購入確定を基準とした売上認識、仕入先精算、締め後の調整行、監査ログを設計します。

  • 金額・数量の整合性を検証するSQLを12種類毎日実行し、新しい要件を回帰テストと併せてスキーマ変更として受け入れます。

このような方におすすめです

  • DB設計の講義を受けたものの、注文・決済・返金・精算テーブルを自分で設計したことがないバックエンド開発者

  • コマース企業に新たに加わり、注文データの構造から把握する必要がある開発者

  • 売上・返金の数値がなぜ合わないのか、テーブル構造から理解したいデータアナリスト

  • 注文・クレームの企画をしながら、データがどのように記録されるのか知りたいPM

カリキュラム(7セクション・40講・約307分)

  • セクション1. はじめに:1件の注文と最初のスキーマ — 完成デモ:1件の注文が精算されるまで、5分で最初の注文、36個の要件と最初のスキーマ、マイグレーションのチェックポイント、注文と注文明細を分ける、お金はFLOATに入れない

  • セクション2. 商品・価格・ステータス — 商品・オプション・SKU、価格スナップショット、オプション名と追加料金のスナップショット、支払金額の内訳を保存、ステータスは注文ではなく明細に、ステータス履歴:いつ変更されたか

  • セクション3. 決済 — 注文は1件、決済は複数、ポイント台帳、部分キャンセル:承認情報を上書きしない、冪等キー:2回押しても決済は1回、決済代行会社との照合、決済整合性検証SQL

  • セクション4. クレームと返金 — クレームモデル:数量を修正しない、クレーム状態遷移表、交換:何を何に交換するか、クーポン割引の按分と455ウォン、ポイントの按分と端数、返金テーブル:計算根拠を残す

  • セクション5. 配送 — 分割出荷:出荷と出荷項目、サプライヤー直送、配送イベントと時刻、返品回収も出荷と同様に、返品送料ポリシー、出荷数量の整合性

  • セクション6. クーポンと精算 — クーポンポリシー・発行・利用、クーポン条件のデータ化、売上はいつ計上するか:購入確定、仕入先精算と手数料率のスナップショット、締め後の返品:調整行

  • セクション7. 運用とキャップストーン — 監査ログ、日次整合性チェックと既知の例外、参照用サマリーテーブル、キャップストーン①:新たな要件とギフト注文、キャップストーン②:ポイントの有効期限と全体回帰テスト

実習環境

DockerでMySQL 8.4を起動し、架空のスポーツ・アウトドア専門モール「ループマーケット」のスキーマを、各講義で段階ファイルを1つずつ差し替えていきます。./db.sh reset Nで、どの講義からでもその講義を開始する状態に戻せます。./reqs.shは処理可能な要件の数を、./verify.shは金額・数量の整合性検証結果を表示します。講義画面に表示されるすべての数値とエラーメッセージは、この実習を実際に実行した結果です。

事前知識

  • 正規化の基本概念

  • SQLのJOINとGROUP BY

  • Dockerがインストールされているコンピューター(実習用DBの実行用)

この講義で扱わないこと

  • 在庫減算の同時実行・ロック処理

  • クエリチューニング・実行計画

  • 分散トランザクション・メッセージキュー

  • 特定の決済代行会社との連携方法

  • ORMマッピング

案内

スライドのナレーションは合成音声です。すべてのデータは教育用の仮想データであり、数値は実行環境によって異なる場合があります。

次のような方に
おすすめです

受講対象

  • DB設計の講義を受けたことはあるが、注文・決済・返金・精算のテーブルを自分で設計したことがないバックエンド開発者

  • EC企業に新たに加わり、注文データの構造から把握しなければならない開発者

  • 売上・返金の数値がなぜ合わないのか、テーブル構造から理解したいデータアナリスト

  • 注文・クレームの企画に携わり、データがどのように記録されるのかを知りたいPM

前提知識

  • 正規化の基本概念

  • SQLのJOINとGROUP BY

  • Dockerがインストールされたコンピューター(実習用DBの実行用)

こんにちは
dorian05202988です。

経歴認証済み

20年以上にわたりデータベースとIT分野でキャリアを積んできたデータ職人です。DBAおよびDB Platformチームのマネージャーとしてデータベースプラットフォームに携わり、MySQL・PostgreSQL・Oracle・MongoDB、SQLチューニング、AWS・Terraform・Pythonを専門分野としています。ゲーム・金融・ITサービス分野での経験をもとに、データベースとクラウドアーキテクチャについて解説しています。『オラ​​クル実務チューニング SQLパターン学習』と『Oracle Pro*C実務プロジェクト活用書』を出版し、AWS Summit 2018・2019と「データよ、遊ぼう」2020では、サーバーレス・データベースの選択・マルチデータベース戦略について発表しました。最近は、Bedrock LLMを利用したスロークエリの分析・チューニング提案、DBスペック算定の自動化、DBメタMCPサーバーとSlackボットを通じた照会フローを扱っています。開発者向けのデータベース自動化と、非開発者向けのAI業務活用について、各コースの対象者と目的に合わせた実習を通じて解説しています。AIの提案をそのまま適用するのではなく、結果の同一性・実行計画・観測条件を確認し、根拠が不足している場合は保留する判断基準を伝えています。会社の運用データや認証情報は講義資料に含めません。

もっと見る

カリキュラム

全体

40件 ∙ (5時間 8分)

講座資料:

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価が集まっていない講座です。
ぜひ最初のレビューをお寄せください。

dorian05202988の他の講座

知識共有者の他の講座はこちら

似ている講座

同じ分野の他の講座を見てみましょう!

期間限定セール

¥49,280

30%

¥8,967