Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
データモデルは時空を越える
Search
terahide
February 21, 2015
Technology
41
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
データモデルは時空を越える
2015/2/21 しょぼちむにデータモデル設計について教えてくださいの会 #syoboben
terahide
February 21, 2015
More Decks by terahide
See All by terahide
アニメに学ぶチームの多様性とコンピテンシー
terahide
0
740
テスト駆動開発でダイエットに挑戦して失敗した話
terahide
0
1.3k
コミュニケーション不全はなぜ起きるか
terahide
0
180
オレオレになりがちなテスト計画を見直した話
terahide
0
210
和服を普段着にするようになって気づいたアジャイルの心
terahide
0
52
Management3.0のワークを受けてから会社の偉い人へM3.0のワークショップをするまでにやったこと
terahide
0
190
一番アジャイルな料理人はソーマくんだと思うんだ
terahide
0
110
Att
terahide
0
57
受託開発でテストファーストしたらXXXを早期発見できてハイアジリティになったはなし
terahide
0
67
Other Decks in Technology
See All in Technology
バックオフィスに染み出すTypeScript ── clasp で安全に仕組みを作る
nealle
1
200
HQ駆動開発で最高のAI-Contextを作ろう
sansantech
PRO
1
120
少ない人手 限られた予算 それでも守る 消せない・見つける・戻れる オールハザード型BCP on AWS / 20261107 Mitsutoshi Matsuo
shift_evolve
PRO
0
300
基本から分かる!AWSセキュリティ運用の考え方と任せ方
cmusudakeisuke
1
460
新卒エンジニア、 介護士になる
ryu1013
1
690
AWSを利用する上で知っておきたい名前解決の話 2026
nagisa53
5
3.3k
顧客合意を取りながら進めるAWSコスト削減の実践
optim
0
150
長い仕事を任せる (Workflows、クラウドセッション、Kiro Web) | 目指せ Kiro マスター 10
inariku
PRO
3
140
慶應義塾大学 AI実践05 論文執筆の仕組み化
keio_smilab
PRO
7
3.8k
In-Context Learning再入門。ICLの勾配降下的解釈の研究動向を追ってみる。
dai08srhg
1
750
業務でAWSをあまり使っていない私が、AWSへのモチベを保つ方法
smt7174
0
180
Reticulum, le réseau cypherpunk dont vous avez besoin !
rlifchitz
0
110
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
470
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
310
Exploring anti-patterns in Rails
aemeredith
4
560
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Navigating Team Friction
lara
192
16k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
60k
Claude Code のすすめ
schroneko
67
230k
Paper Plane (Part 1)
katiecoart
PRO
2
12k
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/
まとめ •データモデルはテーブル設計 とは限らない •履歴を残そう •更新を無くそう •必要があればトレーサビリティ にも気を使おう
われわれに よい 学びの場を 与えてくださった しょぼちむはえらい 拍手!