Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
見直したいテーブル設計
Search
Hiroyuki Mito
February 27, 2023
Programming
99
0
Share
見直したいテーブル設計
Hiroyuki Mito
February 27, 2023
More Decks by Hiroyuki Mito
See All by Hiroyuki Mito
PHPDocを活用する
hiroyukimito
0
81
Paiza CloudとVS Codeで快適な環境を作ろう! / Let's create a comfortable development environment with Paiza Cloud and Visual Studio Code !
hiroyukimito
0
690
Ruby以外から始めるエンジニア生活 PHP(Laravel)版 / Let's start an engineer other than Ruby !! PHP ver.
hiroyukimito
0
460
Other Decks in Programming
See All in Programming
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.6k
次世代リンターで探る、tsgo 時代における型認識カスタムルールの現実解
ytakahashii
1
950
My daily life on Ruby
a_matsuda
3
440
~ 秘伝のタレ化した『神スプシ』と戦う ~ 関数型パラダイムで壊れない仕組みへ
h0r15h0
1
130
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
1
330
ECR拡張スキャンでSBOMを収集して サプライチェーン攻撃の影響調査を 爆速で終わらせてみた
akihisaikeda
2
190
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
200
iOS26時代の新規アプリ開発
yuukiw00w
0
200
GitHub Copilot CLIのいいところ
htkym
2
980
Agentic AI in the Frontend: Architectures with Open Standards @iJS London 2026
manfredsteyer
PRO
0
100
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
670
Migrations : C'est une question d'hygiène !
vinceamstoutz
0
1.8k
Featured
See All Featured
Claude Code のすすめ
schroneko
67
220k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
180
Designing for Performance
lara
611
70k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
190
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Cult of Friendly URLs
andyhume
79
6.9k
Bash Introduction
62gerente
615
210k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.9k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
160
Transcript
⾒直したい テーブル設計 −どこまで正規化は⾏うべきか−
確認 • 正規化とは • データの重複を減らす扱いやすい状態にする • 例. 顧客情報テーブル ・顧客ID ・顧客名
決済情報テーブル ・決済ID ・顧客ID ・決済料⾦
設計者の視点に⽴ってみよう • とある⼩売店の在庫管理システムを作成するとしましょう • 必要な情報は何ですか? • いくつのテーブルが必要ですか? • 各テーブルが持つ情報は何ですか? •
取り扱う商品は以下のように仮定します。 • 寝具 • 枕 • 敷布団・マットレス • 掛け布団 • 布団カバー • その他
設計者の視点に⽴ってみよう • カテゴリーID • カテゴリー名 商品カテゴリーテーブル • 商品ID • カテゴリーID
商品情報テーブル • 商品ID • 商品名 商品名テーブル • 商品ID • 必要在庫数 • 現在在庫数 在庫情報テーブル
システム使⽤者の⽬線に⽴ってみよう • システム使⽤者が欲しい情報は • 在庫として存在する商品名 • 商品毎の在庫数 • 発注しなければならない数量 •
必要なテーブルは • 商品カテゴリーテーブル • 商品情報テーブル
システム使⽤者の⽬線に⽴ってみよう • カテゴリーID • カテゴリー名 商品カテゴリーテーブル • 商品ID • カテゴリーID
• 商品名 • 必要在庫数 • 現在在庫数 商品情報テーブル
情報の主従を意識する • 商品カテゴリーテーブル • 商品情報テーブル • 商品名テーブル • 在庫情報テーブル カテゴリー
→商品情報 →商品名 →在庫情報 • 商品カテゴリーテーブル • 商品情報テーブル カテゴリー →商品
意識したいポイント 1. 必要な情報 2. 情報の持ち主(依存先) 3. 親(⼦)の情報が重複しているか