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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
terahide
February 21, 2015
Technology
0
32
データモデルは時空を越える
2015/2/21 しょぼちむにデータモデル設計について教えてくださいの会 #syoboben
terahide
February 21, 2015
Tweet
Share
More Decks by terahide
See All by terahide
アニメに学ぶチームの多様性とコンピテンシー
terahide
0
590
テスト駆動開発でダイエットに挑戦して失敗した話
terahide
0
1.2k
コミュニケーション不全はなぜ起きるか
terahide
0
150
オレオレになりがちなテスト計画を見直した話
terahide
0
170
和服を普段着にするようになって気づいたアジャイルの心
terahide
0
43
Management3.0のワークを受けてから会社の偉い人へM3.0のワークショップをするまでにやったこと
terahide
0
140
一番アジャイルな料理人はソーマくんだと思うんだ
terahide
0
83
Att
terahide
0
26
受託開発でテストファーストしたらXXXを早期発見できてハイアジリティになったはなし
terahide
0
42
Other Decks in Technology
See All in Technology
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
990
Agile Leadership Summit Keynote 2026
m_seki
1
650
What happened to RubyGems and what can we learn?
mikemcquaid
0
310
レガシー共有バッチ基盤への挑戦 - SREドリブンなリアーキテクチャリングの取り組み
tatsukoni
0
220
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
830
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
200
SRE Enabling戦記 - 急成長する組織にSREを浸透させる戦いの歴史
markie1009
0
140
こんなところでも(地味に)活躍するImage Modeさんを知ってるかい?- Image Mode for OpenShift -
tsukaman
1
160
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
600
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
190
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.6k
Featured
See All Featured
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
120
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
190
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
エンジニアに許された特別な時間の終わり
watany
106
230k
Google's AI Overviews - The New Search
badams
0
910
Building AI with AI
inesmontani
PRO
1
700
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
130
New Earth Scene 8
popppiees
1
1.5k
A designer walks into a library…
pauljervisheath
210
24k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
180
Transcript
てらひで 2015/2/21 #syoboben データモデルは 時空を超える!? ~移動する情報と追跡可能性~
てらひで @terahide27 認定スクラムマスター 認定スクラム プロダクトオーナー アジャイルコンサルタント アーキテクト
てらひで @terahide27 http://gigazine.net/news/20141206-anime-2015winter/ 深夜アニメの カバレッジ90%以上
今日お話すること •データモデルってなんだっ け? •履歴と更新 •データと移動
やらないこと •むずかしいお話 •詳しい説明 •アニメのお話
データ モデル
データ - Wikipedia 伝達、解釈、処理などに適するように形式 化、符号化されたもの、または再度情報 として解釈できるものをいう。 -snip- 端的に言うと、意味のあるデータが 「情報」となる。→情報 http://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF
モデル - Wikipedia -snip- システムやプロセスに関して、計算や予測 の助けとするために、単純化した記述のこ とで、特に数学的なそれのこと[1]。現実 よりも単純化した説明 →モデル (学術)、
数理モデル。 http://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%87%E3%83%AB
データモデル 意味のあるデータ= 『情報』 を 単純化した記述のこと
今日のお題1 つぶやきシステム
ここ! 35,582回ツイート 35,582件の履歴
簡単なモデル ユーザ ツイート 1 0..*
履歴 ツイート 値 更新日時
履歴 おまけ ツイート 変更履歴 1..* 1
今日のお題2 受発注 むずかしい (>_<)
整理 •データ – 注文、発注、商品、などなど •やりたいこと – 注文があった商品を発注先へ納品する – 二重出荷、未出荷などの誤出荷はNG •考えること
– 倉庫に商品がなかったらどうなるんだろう? – などなど
やり方 •一番細かい単位でデータを保持 –トランザクションの単位 •すべての履歴を残す
Sample 注文 * 1 明細 商品 個数 値 1 *
※いろいろ割愛 明細を更新する 可能性のある 最少単位で
使いづらい (>_<)
なにが起こるか •更新はCreateとDeleteだけになる •参照はがっちゃんこしてみればいい
用法容量を お守りの上 適切にお使い ください
性能には気 を付けてね
•時間(現在・過去・未来の受注) •空間(倉庫から発送先へ) つまり移動! 時空を超える
TEA •AccountPattern –アナリシスパターン(ISBN:4894716933) •絶版orz •Transaction(トランザクション) •Entry(エントリー) •Account(資源)
資源 移動の対象となるもの 名前 :商品 商品名:みかん 単位 :箱 個数 :在庫数+入荷数ー出荷数
エントリー 資源をどのくらい変更したか 個数:30 個数:-1 入荷の時 出荷の時
ここまで エントリー 資源 * 1
トランザクション どこからどこへ移動したか 名前:入荷 名前:出荷 入荷は 入荷元から 倉庫への移動 出荷は 倉庫から 出荷先への移動
ここまで エントリー 資源 * 1 トランザク ション * 1
倉庫には今いくつみかん箱がありますか? 質問 1 30箱 2 -1箱 3 -3箱 エントリー 26箱
資源 1 入荷 2 出荷 3 出荷 トランザクション
今日のお題1 つぶやきシステム
つぶやき ツイート 変更 ツイート <Account> <Entry> * 1 ツイート 変更
<Transaction> 1 1 ※冗長だね
つぶやき ツイート変更 ツイート <Account> <Entry> クソモデルw 1 追加 クソモデルw *
1
つぶやき ツイート変更 ツイート <Account> <Entry> 天使モデル 1 追加 クソモデルw 2
変更 天使モデル * 1
つぶやき ツイート変更 ツイート <Account> <Entry> 1 追加 クソモデルw 2 変更
天使モデル 3 削除 * 1 天使モデル
履歴 ツイート 値 更新日時
ご参考 •オージス総研 アナパタ勉強会のページ –第6章 在庫管理と会計 -前半- http://www.ogis-ri.co.jp/otc/hiroba/others/AnaPatStudy/
まとめ •データモデルはテーブル設計 とは限らない •履歴を残そう •更新を無くそう •必要があればトレーサビリティ にも気を使おう
われわれに よい 学びの場を 与えてくださった しょぼちむはえらい 拍手!