Design a great
application!
aka Data Modeling 101
Why should I data model?
Great data model = Your app just works
● Most business people use spreadsheets
   ○ But that doesn't work for an app...
   ○ Bad data; lots of hours to end up with bad reporting
● The right data model is like butter
   ○   Navigation is a breeze
   ○   Data entry makes sense
   ○   Reporting is accurate and easy
   ○   Workflow is just there
Laws of data modeling
You can't break these and have a good app
1. Each unique item requires a unique ID
   ○ think SSN
2. Related items must be linked by unique ID
   ○ think 1040
3. End users will try to break these rules!
   ○ only allow them to link thru a structured choice
   ○ remove permission to create certain items
4. Sometimes you need a many-to-many!
We are here to help!!!
Ahhhh, data modeling...
● It isn't easy
● There's no "right answer"
● Call us for help! 800.673.3302

Don't be shy. Call. It'll save us all time!
DB jargon to sound smart
●   Primary key (think SSN)
●   Foreign key (think SSN on 1040)
●   Flat (think spreadsheet, think uh-oh)
●   Many-to-one (think 1040s per citizen)
●   Parent/Child (which is the one?)
●   Many-to-many (think couples and 1040s)
●   Join table (connects 2 tables for many-to-many)
●   Self-reference (think Reports To)
●   Compound key* (think Name & DOB & Zip)
    ○ compound, composite, whatever...
How does TrackVia do it?

Link-to-parent thru search (think Rule 3...)
How does TrackVia do it?
● Child records organized into tabs
● Link-to-parent has green arrow
Step 1: think about it
1. Don't build anything yet; get pencil & paper
2. Make a list of things with names
   ○ these are tables, drop-downs or checkboxes
3. Repeat the list to the right
4. Connect top-level* items with arrows (1- or 2-way)
           Parent                      Child

           States                      States

           Customers                   Customers

           Contacts                    Contacts

           Products                    Products

           Orders                      Orders
Step 2: list the arrows
Parent                               Child

States                               States

Customers                            Customers

Contacts                             Contacts

Products                             Products

Orders                               Orders


●    States have multiple customers (but only have one attribute)

●    Customers have multiple contacts

●    Contacts have multiple orders

●    Products have multiple orders

●    Orders have multiple products
Step 3: draw a map
●   States have multiple customers (but only have one attribute)

●   Customers have multiple contacts
                                                                        States
●   Contacts have multiple orders                           Customers   [drop-down list]

●   Products have multiple orders

●   Orders have multiple products                           Contacts



                                    Products                 Orders



                                               Line Items
Step 4a: think how it looks
                           States
                           [drop-down list]
             Customers


              Contacts


Products          Orders


     Line Items
Step 4b: think how it looks
                           States
                           [drop-down list]
             Customers


              Contacts


Products          Orders


     Line Items
Step 4c: think how it looks
                           States
                           [drop-down list]
             Customers


              Contacts


Products          Orders


     Line Items
Step 5: proof of concept
                           States
             Customers
                           [drop-down list]
                                              Barebones framework!
                                              ● Only a few fields
              Contacts
                                              ● Only a few records
Products          Orders


     Line Items


1.    Start at the top; build out your tables
2.    Build your Link-to-parent fields as you go
3.    Start at the top; create a few sample records
4.    See how you like it; make changes; repeat step 3!
5.    ALWAYS update your map!
Step 6: pimp your app*
                           States
                           [drop-down list]
             Customers


              Contacts


Products          Orders      *Don't do it until your design is final!
                              ● Can't easily change Table names or Field names.
     Line Items


● Parent lookups
  ○ Company mailing address for each contact
● Child lookups
  ○ Top-10 customers by revenue
  ○ Top-selling products this month
Tips & tricks
● Design the BEST data model!
  ○ DON'T dumb it down based on the past
● Migrating legacy data will take planning and time!
  ○ But a stitch, in time, saves 9!
● Connecting 2 tables with many links to parent?
  ○ You probably need a join table (many-to-many)
● Find yourself creating copies of unique items so you can
   assign them to another person?
   ○ You definitely need a join table!
● DON'T let users create dupes!!!
Thanks for joining!
● Thanks for joining, please let me know what you think!
● Join us here every week!

More Related Content

PDF
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
PDF
Patterns For Cloud Computing
PDF
View Sample Formal Business Letter Format Gi
PPTX
Customer visits - 10 Do's and Don'ts
PDF
Declutter Your Database in 12 Steps.pdf
PPT
3rd Portfolio Development Idea: E commerce
PDF
4_6_23 Import Basics.pdf
PDF
How to 10X your Conversion
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
Patterns For Cloud Computing
View Sample Formal Business Letter Format Gi
Customer visits - 10 Do's and Don'ts
Declutter Your Database in 12 Steps.pdf
3rd Portfolio Development Idea: E commerce
4_6_23 Import Basics.pdf
How to 10X your Conversion

Similar to Design a great cloud application (20)

PDF
User Story Mapping
PPTX
Mariia Shevchenko "Internal Products: how to build them right" BAQ
PDF
4_6_23 Import Basics.pdf
PDF
10 Must Have Steps Millionaires Do To Get Started For Linked In
DOCX
CS1100 Access Lab 1 Creating and Querying Database.docx
PPTX
21 Proven Ways to Increase Your Website Conversion Rate
PDF
Form accessibility and beyond
PDF
How to Design a Brilliant Product Without Killing Your Cofounder
PDF
Building Beautiful and Highly Usable Products by Simon Vallee
PPTX
Craig Bradford Driftrock MeetUp
PDF
Featureban
PDF
Agile Gurugram 2016 | Conference | The Featureban simulation game | Mike Burrows
PDF
Site Optimizations to Schedule Before The Holiday Code Freeze
PPT
Lecture 15
PPT
Snakes and ladders
PDF
Iteration After Problem/Solution Fit
PDF
Imports Next Level.pdf
PDF
Product Listing (PDF) @ Amazon
PPT
13 Secrets to Successful Metrics-Based Marketing
PDF
How 'Open' Changes Product Development
User Story Mapping
Mariia Shevchenko "Internal Products: how to build them right" BAQ
4_6_23 Import Basics.pdf
10 Must Have Steps Millionaires Do To Get Started For Linked In
CS1100 Access Lab 1 Creating and Querying Database.docx
21 Proven Ways to Increase Your Website Conversion Rate
Form accessibility and beyond
How to Design a Brilliant Product Without Killing Your Cofounder
Building Beautiful and Highly Usable Products by Simon Vallee
Craig Bradford Driftrock MeetUp
Featureban
Agile Gurugram 2016 | Conference | The Featureban simulation game | Mike Burrows
Site Optimizations to Schedule Before The Holiday Code Freeze
Lecture 15
Snakes and ladders
Iteration After Problem/Solution Fit
Imports Next Level.pdf
Product Listing (PDF) @ Amazon
13 Secrets to Successful Metrics-Based Marketing
How 'Open' Changes Product Development
Ad

Recently uploaded (20)

PPT
What is a Computer? Input Devices /output devices
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
DOCX
search engine optimization ppt fir known well about this
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
A review of recent deep learning applications in wood surface defect identifi...
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
1 - Historical Antecedents, Social Consideration.pdf
PPTX
Benefits of Physical activity for teenagers.pptx
PPTX
Tartificialntelligence_presentation.pptx
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Unlock new opportunities with location data.pdf
PDF
Hybrid model detection and classification of lung cancer
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
WOOl fibre morphology and structure.pdf for textiles
PPTX
The various Industrial Revolutions .pptx
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PPTX
Modernising the Digital Integration Hub
PDF
Five Habits of High-Impact Board Members
What is a Computer? Input Devices /output devices
NewMind AI Weekly Chronicles – August ’25 Week III
search engine optimization ppt fir known well about this
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
A review of recent deep learning applications in wood surface defect identifi...
Chapter 5: Probability Theory and Statistics
Assigned Numbers - 2025 - Bluetooth® Document
Developing a website for English-speaking practice to English as a foreign la...
1 - Historical Antecedents, Social Consideration.pdf
Benefits of Physical activity for teenagers.pptx
Tartificialntelligence_presentation.pptx
Zenith AI: Advanced Artificial Intelligence
Unlock new opportunities with location data.pdf
Hybrid model detection and classification of lung cancer
DP Operators-handbook-extract for the Mautical Institute
WOOl fibre morphology and structure.pdf for textiles
The various Industrial Revolutions .pptx
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Modernising the Digital Integration Hub
Five Habits of High-Impact Board Members
Ad

Design a great cloud application

  • 2. Why should I data model? Great data model = Your app just works ● Most business people use spreadsheets ○ But that doesn't work for an app... ○ Bad data; lots of hours to end up with bad reporting ● The right data model is like butter ○ Navigation is a breeze ○ Data entry makes sense ○ Reporting is accurate and easy ○ Workflow is just there
  • 3. Laws of data modeling You can't break these and have a good app 1. Each unique item requires a unique ID ○ think SSN 2. Related items must be linked by unique ID ○ think 1040 3. End users will try to break these rules! ○ only allow them to link thru a structured choice ○ remove permission to create certain items 4. Sometimes you need a many-to-many!
  • 4. We are here to help!!! Ahhhh, data modeling... ● It isn't easy ● There's no "right answer" ● Call us for help! 800.673.3302 Don't be shy. Call. It'll save us all time!
  • 5. DB jargon to sound smart ● Primary key (think SSN) ● Foreign key (think SSN on 1040) ● Flat (think spreadsheet, think uh-oh) ● Many-to-one (think 1040s per citizen) ● Parent/Child (which is the one?) ● Many-to-many (think couples and 1040s) ● Join table (connects 2 tables for many-to-many) ● Self-reference (think Reports To) ● Compound key* (think Name & DOB & Zip) ○ compound, composite, whatever...
  • 6. How does TrackVia do it? Link-to-parent thru search (think Rule 3...)
  • 7. How does TrackVia do it? ● Child records organized into tabs ● Link-to-parent has green arrow
  • 8. Step 1: think about it 1. Don't build anything yet; get pencil & paper 2. Make a list of things with names ○ these are tables, drop-downs or checkboxes 3. Repeat the list to the right 4. Connect top-level* items with arrows (1- or 2-way) Parent Child States States Customers Customers Contacts Contacts Products Products Orders Orders
  • 9. Step 2: list the arrows Parent Child States States Customers Customers Contacts Contacts Products Products Orders Orders ● States have multiple customers (but only have one attribute) ● Customers have multiple contacts ● Contacts have multiple orders ● Products have multiple orders ● Orders have multiple products
  • 10. Step 3: draw a map ● States have multiple customers (but only have one attribute) ● Customers have multiple contacts States ● Contacts have multiple orders Customers [drop-down list] ● Products have multiple orders ● Orders have multiple products Contacts Products Orders Line Items
  • 11. Step 4a: think how it looks States [drop-down list] Customers Contacts Products Orders Line Items
  • 12. Step 4b: think how it looks States [drop-down list] Customers Contacts Products Orders Line Items
  • 13. Step 4c: think how it looks States [drop-down list] Customers Contacts Products Orders Line Items
  • 14. Step 5: proof of concept States Customers [drop-down list] Barebones framework! ● Only a few fields Contacts ● Only a few records Products Orders Line Items 1. Start at the top; build out your tables 2. Build your Link-to-parent fields as you go 3. Start at the top; create a few sample records 4. See how you like it; make changes; repeat step 3! 5. ALWAYS update your map!
  • 15. Step 6: pimp your app* States [drop-down list] Customers Contacts Products Orders *Don't do it until your design is final! ● Can't easily change Table names or Field names. Line Items ● Parent lookups ○ Company mailing address for each contact ● Child lookups ○ Top-10 customers by revenue ○ Top-selling products this month
  • 16. Tips & tricks ● Design the BEST data model! ○ DON'T dumb it down based on the past ● Migrating legacy data will take planning and time! ○ But a stitch, in time, saves 9! ● Connecting 2 tables with many links to parent? ○ You probably need a join table (many-to-many) ● Find yourself creating copies of unique items so you can assign them to another person? ○ You definitely need a join table! ● DON'T let users create dupes!!!
  • 17. Thanks for joining! ● Thanks for joining, please let me know what you think! ● Join us here every week!