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
なんとなくやってきたあなたへ贈るデータモデリング入門 / Minamikyushu Software Design Labo vol1
Search
Tomoka Baba
October 10, 2016
Technology
0
360
なんとなくやってきたあなたへ贈るデータモデリング入門 / Minamikyushu Software Design Labo vol1
Tomoka Baba
October 10, 2016
Tweet
Share
More Decks by Tomoka Baba
See All by Tomoka Baba
ゼロからはじめる Git & GitHub 入門 / challecara-git-hands-on
tomckysan
0
430
Other Decks in Technology
See All in Technology
Google Cloud の AI を支える裏側のインフラを垣間見る!
maroon1st
0
360
Python と Snowflake はズッ友だょ!~ Snowflake の Python 関連機能をふりかえる ~
__allllllllez__
1
120
Postman v10リリース後を振り返る / Looking back at Postman v10 after release
yokawasa
1
160
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
2.1k
ServiceNow Knowledge Learning Rise up
manarobot
0
210
AWSに詳しくない人でも始められるコスト最適化ガイド
yuhta28
1
250
DMM.com アルファ室採用案内資料
hsugita
1
160
Building Dashboards as a Hobby
egmc
0
230
GraphQL 成熟度モデルの紹介と、プロダクトに当てはめた事例 / GraphQL maturity model
mh4gf
7
1.4k
Janus
bkuhlmann
1
490
SIEMを用いて、セキュリティログ分析の可視化と分析を実現し、PDCAサイクルを回してみた
coconala_engineer
0
340
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
1
770
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
36
2.1k
Into the Great Unknown - MozCon
thekraken
10
1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
30
6k
Building Applications with DynamoDB
mza
88
5.6k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Optimizing for Happiness
mojombo
370
69k
Designing on Purpose - Digital PM Summit 2013
jponch
110
6.5k
Rails Girls Zürich Keynote
gr2m
91
13k
Become a Pro
speakerdeck
PRO
11
4.5k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
What’s in a name? Adding method to the madness
productmarketing
PRO
16
2.6k
Transcript
ͳΜͱͳ͖ͬͯͨ͘ ͋ͳͨଃΔ σʔλϞσϦϯάೖ ͱ͔ ೆभιϑτΣΞઃܭLabo vol.1 2016.10.08 Sat.
ࠂ
αΠτݚڀձʢຓʣ
Έͳ͞Μ σʔλϞσϦϯάͬͯ Ͳ͏͍ͯ͠·͔͢ʁ
ͳΜͱͳ͖ͬͯͨ͘ • Ή͕࣌ؒଟ͕͔͔ͯ࣌ؒ͘Δ • ͜Ε͕ਖ਼͍͔͠Ͳ͏͔ͷࣗ৴͕࣋ͯͳ͍ • ࣮͢ΔϑΣʔζʹͳͬͯޙչ͢Δ
σʔλϞσϦϯά ͔ͬ͠ΓΓ͍ͨɻ
ࠓճͷత • ͔̍Β̍̌·ͰσʔλϞσϦϯάΛֶͿͷ ͪΐͬͱਏ͍ • ͦΕͰײ֮ʹཔΓ͗͢Δ͜ͱͳ͘Ұఆͷɹ ਫ਼Ͱૉૣ͘ϞσϦϯά͍ͨ͠ • ࠓճTࣈܗERख๏ΛϕʔεʹϙΠϯτΛɹ ߜͬͯઆ໌͢Δ
ϞσϦϯάͷྲྀΕ 1. ۀΛѲ͢Δ 2. ΤϯςΟςΟΛநग़͢Δ 3. ΤϯςΟςΟΛྨ͢Δ 4. ΤϯςΟςΟΛؔ࿈͚Δ
1. ۀΛѲ͢Δ • ྫ͑ Twitter ͩͬͨΒ − ϢʔβʔπΠʔτ͕Ͱ͖Δ − ϢʔβʔଞͷϢʔβʔΛϑΥϩʔ͢Δ͜ͱ͕Ͱ͖Δ
− ϢʔβʔϑΥϩʔͨ͠ϢʔβʔͷπΠʔτΛݟΔ͜ͱ͕Ͱ͖Δ − ಛఆͷπΠʔτʹʮ͍͍ͶʯͰ͖Δ
2. ΤϯςΟςΟΛநग़͢Δ • ྫ͑ Twitter ͩͬͨΒ − ϢʔβʔπΠʔτ͕Ͱ͖Δ − ϢʔβʔଞͷϢʔβʔΛϑΥϩʔ͢Δ͜ͱ͕Ͱ͖Δ
− ϢʔβʔϑΥϩʔͨ͠ϢʔβʔͷπΠʔτΛݟΔ͜ͱ͕Ͱ͖Δ − ಛఆͷπΠʔτʹʮ͍͍ͶʯͰ͖Δ
2. ΤϯςΟςΟΛநग़͢Δ • ίπʮ໊ࢺʯͱʮಈࢺʯʹ͢Δ͜ͱ • ͨͩ͠CRUDʹͳΔಈࢺআ͘ • ྫ͑ Twitter ͩͬͨΒ
− ϢʔβʔπΠʔτ͕Ͱ͖Δ − ϢʔβʔଞͷϢʔβʔΛϑΥϩʔ͢Δ͜ͱ͕Ͱ͖Δ − ϢʔβʔϑΥϩʔͨ͠ϢʔβʔͷπΠʔτΛݟΔ͜ͱ͕Ͱ͖Δ − ಛఆͷπΠʔτʹʮ͍͍ͶʯͰ͖Δ
2. ΤϯςΟςΟΛநग़͢Δ • ίπʮ໊ࢺʯͱʮಈࢺʯʹ͢Δ͜ͱ • ͨͩ͠CRUDʹͳΔಈࢺআ͘ • ྫ͑ Twitter ͩͬͨΒ
− ϢʔβʔπΠʔτ͕Ͱ͖Δ − ϢʔβʔଞͷϢʔβʔΛϑΥϩʔ͢Δ͜ͱ͕Ͱ͖Δ − ϢʔβʔϑΥϩʔͨ͠ϢʔβʔͷπΠʔτΛݟΔ͜ͱ͕Ͱ͖Δ − ಛఆͷπΠʔτʹʮ͍͍ͶʯͰ͖Δ ʮݟΔʯ͍ͬͯ͏ͷ CRUDͷRʢಡΈࠐΈʣ ʹ͋ͨΔ
3. ΤϯςΟςΟΛྨ͢Δ • ΤϯςΟςΟͷྨ̎छྨ − Event − ࣌Λ࣋ͭͷ − Resource
− ࣌Λ࣋ͨͳ͍ͷ
3. ΤϯςΟςΟΛྨ͢Δ
4. ΤϯςΟςΟΛؔ࿈͚Δ • R-Eܕ • E-Eܕ • R-Rܕ • ࠶ؼ
4. ΤϯςΟςΟΛؔ࿈͚Δ • R-Eܕ − ͋ΔResource͕EventΛى͜͢έʔε − جຊʮ̍ରଟʯͰ͋Δ − ྫɿϢʔβʔʢResourceʣ͕πΠʔτ͢ΔʢEventʣ
4. ΤϯςΟςΟΛؔ࿈͚Δ • E-Eܕ − ʮ̍ରଟʯʮଟରଟʯͷέʔε͕͋Δ − ઌߦˠޙଓͷؔʹͳΔʮ̍ରଟʯͷέʔε − ྫɿπΠʔτʢEventʣʹ͍͍ͶʢEventʣ͕ͭ͘
− ରԠදΛඞཁͱ͢Δʮଟରଟʯͷέʔε − ྫɿෳͷडʢEventʣʹର݄ͯ͠·ͱΊͯٻ͢ΔʢEventʣ
4. ΤϯςΟςΟΛؔ࿈͚Δ • E-Eܕ − ෳͷडʢEventʣʹର݄ͯ͠·ͱΊͯٻ͢ΔʢEventʣ
4. ΤϯςΟςΟΛؔ࿈͚Δ • R-Rܕ − جຊʮଟରଟʯͰ͋Δ − ରরදΛ࣋ͭ − ̎ͭͷؒʹ੍ଋറΛ࣋ͨͤΔResourceͱͯ͠ͷରরද
− ྫɿ͋Δސ٬ʹ͜ͷΛച͍͚ͬͯͳ͍ − ̎ͭͷؒʹࣄલࣄޙͷؔΛࣔ͢Eventͱͯ͠ͷରরද − ྫɿ͋ΔࣾһΛ͜ͷ෦ॺʹ͍ͭॴଐͤͨ͞
4. ΤϯςΟςΟΛؔ࿈͚Δ • R-Rܕ − ͋Δސ٬ʹ͜ͷΛച͍͚ͬͯͳ͍ − ͋ΔࣾһΛ͜ͷ෦ॺʹ͍ͭॴଐͤͨ͞
4. ΤϯςΟςΟΛؔ࿈͚Δ • ࠶ؼ − ̍ͭͷू߹͔ΒऔΓग़ͨ͠ཁૉͰߏ − ྫ̍ɿTwitter ͷϑΥϩʔ −
ྫ̎ɿථͳͲͷࠇॲཧ
4. ΤϯςΟςΟΛؔ࿈͚Δ
4. ΤϯςΟςΟΛؔ࿈͚Δ R-Eܕʮ̍ରଟʯ
4. ΤϯςΟςΟΛؔ࿈͚Δ R-Eܕʮ̍ରଟʯ
4. ΤϯςΟςΟΛؔ࿈͚Δ E-EܕͰઌߦˠޙଓͷؔ ͳͷͰʮ̍ରଟʯ
4. ΤϯςΟςΟΛؔ࿈͚Δ E-EܕͰઌߦˠޙଓͷؔ ͳͷͰʮ̍ରଟʯ
4. ΤϯςΟςΟΛؔ࿈͚Δ ϑΥϩʔʮ࠶ؼʯ
4. ΤϯςΟςΟΛؔ࿈͚Δ ϑΥϩʔʮ࠶ؼʯ
4. ΤϯςΟςΟΛؔ࿈͚Δ
ۀΛ࣮ݱͰ͖Δ͔֬ೝ͢Δ • ͜͜·ͰͰݟ͖͑ͯͨෆಁ໌ͳ෦ • ͓٬͞Μͱͷ͢Γ߹Θͤ • ΑΓਫ਼Λ্͍͛ͯ͘
ҙࣝ͢Δ͜ͱ • NULLΛۃྗආ͚Δ − NULLෳͷҙຯΛ࣋ͭʢ·ͩଘࡏ͠ͳ͍͚͔ͩʁόά͔ʁʣ − ৗʹNULLʹͳΔՄೳੑʹک͑Δͷਏ͍ • UPDATEΛۃྗආ͚Δ −
σʔλߋ৽ͱ͍͏ॲཧෳࡶੑΛ૿͢ • ςʔϒϧʹঢ়ଶΛۃྗ࣋ͨͤͳ͍ − UPDATEΛۃྗආ͚Δͱ͍͏ҙຯͰ
࠷ޙʹ • ͜ΕͰᘳͳΘ͚͡Όͳ͍ • Γํͻͱͭ͡Όͳ͍ • ͻͱͭͷҰ؏ͨ͠ܕΛ࣋ͭ͜ͱ • ͦͯ͠ͱʹ͔͘Λ͜ͳ͢͜ͱ •
ͦͷதͰͨ͘͞Μ௧͍ʹ͋͏͜ͱ • ࢼߦࡨޡͯࣗ͠ͷΓํΛݟ͚͍ͭͯ͘