Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
One size fit All
1. One Size fits All
David Funaro
domenica 3 aprile 2011
2. -
One Size fits-All
David Funaro
domenica 3 aprile 2011
3. Why i’m Here
“There must be a better way to
design this model”
?????????????????????????????????
domenica 3 aprile 2011
4. Evolution of the persistence
TIME
’60
Application
SINGLE USER
Everything in inside the
application, every time
we have to spend time
to reinvent the wheel
domenica 3 aprile 2011
5. Evolution of the persistence
TIME
’60 ’70/80
Application
Application
Library
SINGLE USER SINGLE USER
Everything in inside the
a good way to develop. All
application, every time
the business logic is in the
we have to spend time
Library
to reinvent the wheel
domenica 3 aprile 2011
6. Evolution of the persistence
TIME
’60 ’70/80 ’90
Application
Application
Library
RDBMS
SINGLE USER SINGLE USER MULTI-USER
Everything in inside the
a good way to develop. All
application, every time
the business logic is in the Centralized storage of the
we have to spend time
Library model
to reinvent the wheel
domenica 3 aprile 2011
7. Data-Driven
Application Design
Data
Application
domenica 3 aprile 2011
8. Way to Develop
• Define ER:
• Indentify every Entities
• Foeach entity find all the
attributes
domenica 3 aprile 2011
9. Active Record
“Active record is an approach to accessing data in a
database. A database table or view is wrapped into
a class.”
Wikipedia
domenica 3 aprile 2011
12. 1:Real Case: plugin
UserEvent Event
User_id 100 id : 12
event_id 12
domenica 3 aprile 2011
13. 1:Real Case: plugin
UserEvent Event
User_id 100 id : 12
event_id 12
Document
id : 54
domenica 3 aprile 2011
14. 1:Real Case: plugin
UserEvent Event
User_id 100 id : 12
event_id 12
Document
id : 54
Group
id : 78
domenica 3 aprile 2011
15. 1:Real Case: plugin
UserEvent Event
User_id 100 id : 12
event_id 12
Document
UserEntity id : 54
User_id 100
Class Document
entity_id 12 Group
id : 78
domenica 3 aprile 2011
16. 1:Real Case: plugin
UserEvent Event
User_id 100 id : 12
event_id 12
Document
UserEntity id : 54
User_id 100
Class Document
entity_id 12 Group
id : 78
domenica 3 aprile 2011
17. 1:Real Case: plugin
UserEvent Event
User_id 100 id : 12
event_id 12
Document
UserEntity id : 54
User_id 100
Class Document
entity_id 12 Group
id : 78
domenica 3 aprile 2011
18. 1:Real Case: plugin
UserEvent Event
User_id 100 id : 12
event_id 12
Document
UserEntity id : 54
User_id 100
Class Document
entity_id 12 Group
id : 78
domenica 3 aprile 2011
19. 1:Real Case: plugin
UserEvent Event
User_id 100 id : 12
event_id 12
Document
UserEntity id : 54
User_id 100
Class Document
entity_id 12 Group
id : 78
Integrity : Broken
domenica 3 aprile 2011
20. 1:Real Case: Redundance
UserEvent
Event
User_id 100
id : 12
event_id 12
UserDocument
User_id 100 Document
document_id 12 id : 54
UserGroup
Group
User_id 100
id : 78
document_id 12
domenica 3 aprile 2011
21. 1:Real Case: menu
Home:
•page
•event
•group
•document
domenica 3 aprile 2011
22. 1:Real Case: menu
Menu
name home
Home: menu_item_id 2
•page
•event
•group
•document
domenica 3 aprile 2011
23. 1:Real Case: menu
Menu
name home
Home: menu_item_id 2
•page
•event MenuItem
•group name home
•document menu_item_id 2
class Group
entity_id id
domenica 3 aprile 2011
24. 1:Real Case: menu
Menu
name home
Home: menu_item_id 2
•page
•event MenuItem
•group name home
•document menu_item_id 2
class Group
entity_id id
Event
id : 12
domenica 3 aprile 2011
25. 1:Real Case: menu
Menu
name home
Home: menu_item_id 2
•page
•event MenuItem
•group name home
•document menu_item_id 2
class Group
entity_id id
Event Document
id : 12 id : 54
domenica 3 aprile 2011
26. 1:Real Case: menu
Menu
name home
Home: menu_item_id 2
•page
•event MenuItem
•group name home
•document menu_item_id 2
class Group
entity_id id
Event Group Document
id : 12 id : 78 id : 54
domenica 3 aprile 2011
27. 1:Real Case: menu
Menu
name home
Home: menu_item_id 2
•page
•event MenuItem
•group name home
•document menu_item_id 2
class Group
entity_id id
Event Group Document
id : 12 id : 78 id : 54
domenica 3 aprile 2011
28. 1:Real Case: menu
Menu
name home
Home: menu_item_id 2
•page
•event MenuItem
•group name home
•document menu_item_id 2
class Group
entity_id id
Event Group Document
id : 12 id : 78 id : 54
domenica 3 aprile 2011
29. 1:Real Case: menu
Menu
name home
Home: menu_item_id 2
•page
•event MenuItem
•group name home
•document menu_item_id 2
class Group
entity_id id
Event Group Document
id : 12 id : 78 id : 54
domenica 3 aprile 2011
56. So ?
• Removing impedence mismatch is a
good reason to avoid the relational
model
domenica 3 aprile 2011
57. So ?
• Removing impedence mismatch is a
good reason to avoid the relational
model
• Performances aren’t the only reason to
choose NoSQL
domenica 3 aprile 2011
58. So ?
• Removing impedence mismatch is a
good reason to avoid the relational
model
• Performances aren’t the only reason to
choose NoSQL
• A RDBMS isn’t always the proper
choice
domenica 3 aprile 2011
59. Thanks
• David Funaro
• http://www.davidfunaro.com
• @ingdavidino
• ing.davidino@gmail.com
domenica 3 aprile 2011