SlideShare a Scribd company logo
1 of 32
Download to read offline
Database Design
By
Joysy John
Code First Girls
15 Aug 2013
Agenda
• Introduction
• Tables and Keys
• Types of Relationships
• Normalisation
• Q&A
Computer Engineer, MBA
Founder, Social Entrepreneur
Angel Investor, Ex-Banker, Mother
Education
Corporate & Entrepreneurial Career
Introduction
Tables and Keys
• Entities: An entity is a distinct clearly identifiable object of the database e.g. Book
• Attribute: Each Entity is characterised by a set of attributes e.g. Title
• Entity set: Set of all entities having attributes of the same type
• Relationships: A relationship is a mapping between entity sets
Book
Acc_No
Title
Author
YearofPub
Users
Card_No
Name
Address
Borrowed_By
Card_No
Acc_No
DOI
*
1
*
1
Sample data – library data
Acc_No Name Address Title Author YearofPub CardNo DOI
4Doe Ray 4 sunshine lane Mindset Carol Dweck 2005 103 01/06/2013
8Doe Ray 4 sunshine lane Learning Mindset Carol Dweck 2006 103 01/06/2013
2Jacob John 7 Deer St Mindset Carol Dweck 2005 101 22/05/2013
1John Smith 34 London Road Happy Days A.J. Roy 2009 100 23/07/2013
5John Smith 34 London Road Learn to code Tom Close 2013 100 23/07/2013
6John Smith 34 London Road Ruby on Rails M.H. Bedi 2010 100 23/07/2013
3Mary jane 2 mill drive The art of writing M.B. Thomas 2001 102 15/08/2013
7Mary jane 2 mill drive Learn to code Tom Close 2013 102 15/08/2013
9Mary jane 2 mill drive ABC of photography K. Janice 2012 102 15/08/2013
Exercise: Managing a school
Create Students and Classes tables in a database for managing a
school.
• Each student can register for many classes and each class can
have many students.
• Students must register for a class with their firstname, lastname
and age. They can select multiple classes within the same
subject.
• Class has a class name and belongs to a subject and is taught in
venue assigned to the class.
School data tables
Students
Student_ID
FirstName
LastName
Age
Classes
Class_id
className
Subject
StudentsClasses
Student_ID
Class_id
venue
*
1
*
1
Basic rules:
• One table for one entity set
• One column for one attribute
• One table for one relationship set
• Columns are:
• Key attributes of all participating
entity sets
• All descriptive attributes
1:1 Relationship
N:1 Relationship N:M Relationship
1:N Relationship
Types of Relationships
Example of 1:1 Relationship
1 1
Person
person_id
first_name
last_name
Spouse_contact
person_id
Spouse_name
Email
Phone
Example of 1:N Relationship
* 1
Person
person_id
name
country_id
Country
country_id
country_name
capital
Example of N:M Relationship
*
1
Shop
shop_id
shop_name
location
Prices
product_id
shop_id
price
Product
product_id
product_name
category
1
*
A many-to-many relationship is one where two data tables or entities have
multiple rows that are connected to one or more rows in the other table.
Process of Organising Your Data
What is Normalisation?
Why Normalise?
• Reduces redundancies and dependencies
• Saves space
• Reduces data anomalies
• Makes for easier maintenance
Normal Form
• Normal Forms (NF) are “standardised” rules
• Each builds off the previous form
• Higher the number the more normalised the
data id (1NF, 2NF, 3NF, etc)
Example Data
Parents student Name emergency contact student age classroom teacher school year grade level
John Smith John Smith Jr John Smith 10 C110 Ms Brown 2010 6
Mary Smith John Smith Jr John Smith 10 C110 Ms Brown 2010 6
John Smith John Smith Jr Mary Smith 10 C80 Mr Green 2010 6
Mary Smith John Smith Jr Mary Smith 10 C80 Mr Green 2010 6
John Smith April Smith John Smith 9 A25 Ms Baker 2009 5
Mary Smith April Smith John Smith 9 A25 Ms Baker 2009 5
John Smith April Smith Mary Smith 9 A99 Mr Close 2009 5
Mary Smith April Smith Mary Smith 9 A99 Mr Close 2009 5
Dave Harris Julie Harris Dave Harris 6 A10 Mr Jones 2010 3
Base Table We Will Start With
First Normal Form
• Remove “repeating” data
• A primary key can be defined
Primary key can uniquely
identify any row in a table
Parents student Name emergency contact student age classroom teacher school year grade level
John Smith John Smith Jr John Smith 10 C110 Ms Brown 2010 6
Mary Smith John Smith Jr John Smith 10 C110 Ms Brown 2010 6
John Smith John Smith Jr Mary Smith 10 C80 Mr Green 2010 6
Mary Smith John Smith Jr Mary Smith 10 C80 Mr Green 2010 6
John Smith April Smith John Smith 9 A25 Ms Baker 2009 5
Mary Smith April Smith John Smith 9 A25 Ms Baker 2009 5
John Smith April Smith Mary Smith 9 A99 Mr Close 2009 5
Mary Smith April Smith Mary Smith 9 A99 Mr Close 2009 5
Dave Harris Julie Harris Dave Harris 6 A10 Mr Jones 2010 3
Second Normal Form
• Meet all requirements of 1NF
• Isolate repeated subsets of data
• Create the relationships
Normalised tables
*
*
*
1
Normalised tables with relationships
1
1
*
1
Third Normal Form
• Meet all requirements of 2NF
• Pull out data that is not dependent on primary
key
Exercise: Task Table
Task
task_id
Name
Due_date
description
project
completed
Project
project_id
name
Task
task_id
Name
Due_date
description
Project_id
completed
Allow Tasks to be assigned to a user
(1:N relationship)
Task
task_id
Name
Due_date
description
Project_id
completed
User_id
User
user_id
name
*
1
Allow Tasks to be tagged with tags
(N:M relationship)
Task
task_id
name
due_date
description
project_id
completed
Tag
tag_id
name
TagTask
id
tag_id
task_id
*
1
* 1
Basics of Database Design

More Related Content

Similar to Basics of Database Design

3-db-er_3-db-er_3-db-er_3-db-er_3-db-er.pptx
3-db-er_3-db-er_3-db-er_3-db-er_3-db-er.pptx3-db-er_3-db-er_3-db-er_3-db-er_3-db-er.pptx
3-db-er_3-db-er_3-db-er_3-db-er_3-db-er.pptxBUSHRASHAIKH804312
 
Geek Sync | Looking "Normal" and Seeing "Stars": Table Designs Working Together
Geek Sync | Looking "Normal" and Seeing "Stars": Table Designs Working TogetherGeek Sync | Looking "Normal" and Seeing "Stars": Table Designs Working Together
Geek Sync | Looking "Normal" and Seeing "Stars": Table Designs Working TogetherIDERA Software
 
Logical Design and Conceptual Database Design
Logical Design and Conceptual Database DesignLogical Design and Conceptual Database Design
Logical Design and Conceptual Database DesignEr. Nawaraj Bhandari
 

Similar to Basics of Database Design (6)

TNS ppt.pptx
TNS ppt.pptxTNS ppt.pptx
TNS ppt.pptx
 
3-db-er_3-db-er_3-db-er_3-db-er_3-db-er.pptx
3-db-er_3-db-er_3-db-er_3-db-er_3-db-er.pptx3-db-er_3-db-er_3-db-er_3-db-er_3-db-er.pptx
3-db-er_3-db-er_3-db-er_3-db-er_3-db-er.pptx
 
603s129
603s129603s129
603s129
 
Geek Sync | Looking "Normal" and Seeing "Stars": Table Designs Working Together
Geek Sync | Looking "Normal" and Seeing "Stars": Table Designs Working TogetherGeek Sync | Looking "Normal" and Seeing "Stars": Table Designs Working Together
Geek Sync | Looking "Normal" and Seeing "Stars": Table Designs Working Together
 
Data dictionary
Data dictionaryData dictionary
Data dictionary
 
Logical Design and Conceptual Database Design
Logical Design and Conceptual Database DesignLogical Design and Conceptual Database Design
Logical Design and Conceptual Database Design
 

Recently uploaded

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 

Recently uploaded (20)

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 

Basics of Database Design

  • 1. Database Design By Joysy John Code First Girls 15 Aug 2013
  • 2. Agenda • Introduction • Tables and Keys • Types of Relationships • Normalisation • Q&A
  • 3. Computer Engineer, MBA Founder, Social Entrepreneur Angel Investor, Ex-Banker, Mother Education Corporate & Entrepreneurial Career Introduction
  • 4. Tables and Keys • Entities: An entity is a distinct clearly identifiable object of the database e.g. Book • Attribute: Each Entity is characterised by a set of attributes e.g. Title • Entity set: Set of all entities having attributes of the same type • Relationships: A relationship is a mapping between entity sets Book Acc_No Title Author YearofPub Users Card_No Name Address Borrowed_By Card_No Acc_No DOI * 1 * 1
  • 5. Sample data – library data Acc_No Name Address Title Author YearofPub CardNo DOI 4Doe Ray 4 sunshine lane Mindset Carol Dweck 2005 103 01/06/2013 8Doe Ray 4 sunshine lane Learning Mindset Carol Dweck 2006 103 01/06/2013 2Jacob John 7 Deer St Mindset Carol Dweck 2005 101 22/05/2013 1John Smith 34 London Road Happy Days A.J. Roy 2009 100 23/07/2013 5John Smith 34 London Road Learn to code Tom Close 2013 100 23/07/2013 6John Smith 34 London Road Ruby on Rails M.H. Bedi 2010 100 23/07/2013 3Mary jane 2 mill drive The art of writing M.B. Thomas 2001 102 15/08/2013 7Mary jane 2 mill drive Learn to code Tom Close 2013 102 15/08/2013 9Mary jane 2 mill drive ABC of photography K. Janice 2012 102 15/08/2013
  • 6. Exercise: Managing a school Create Students and Classes tables in a database for managing a school. • Each student can register for many classes and each class can have many students. • Students must register for a class with their firstname, lastname and age. They can select multiple classes within the same subject. • Class has a class name and belongs to a subject and is taught in venue assigned to the class.
  • 8. Basic rules: • One table for one entity set • One column for one attribute • One table for one relationship set • Columns are: • Key attributes of all participating entity sets • All descriptive attributes
  • 9. 1:1 Relationship N:1 Relationship N:M Relationship 1:N Relationship Types of Relationships
  • 10. Example of 1:1 Relationship 1 1 Person person_id first_name last_name Spouse_contact person_id Spouse_name Email Phone
  • 11. Example of 1:N Relationship * 1 Person person_id name country_id Country country_id country_name capital
  • 12. Example of N:M Relationship * 1 Shop shop_id shop_name location Prices product_id shop_id price Product product_id product_name category 1 * A many-to-many relationship is one where two data tables or entities have multiple rows that are connected to one or more rows in the other table.
  • 13. Process of Organising Your Data What is Normalisation?
  • 14. Why Normalise? • Reduces redundancies and dependencies • Saves space • Reduces data anomalies • Makes for easier maintenance
  • 15. Normal Form • Normal Forms (NF) are “standardised” rules • Each builds off the previous form • Higher the number the more normalised the data id (1NF, 2NF, 3NF, etc)
  • 16. Example Data Parents student Name emergency contact student age classroom teacher school year grade level John Smith John Smith Jr John Smith 10 C110 Ms Brown 2010 6 Mary Smith John Smith Jr John Smith 10 C110 Ms Brown 2010 6 John Smith John Smith Jr Mary Smith 10 C80 Mr Green 2010 6 Mary Smith John Smith Jr Mary Smith 10 C80 Mr Green 2010 6 John Smith April Smith John Smith 9 A25 Ms Baker 2009 5 Mary Smith April Smith John Smith 9 A25 Ms Baker 2009 5 John Smith April Smith Mary Smith 9 A99 Mr Close 2009 5 Mary Smith April Smith Mary Smith 9 A99 Mr Close 2009 5 Dave Harris Julie Harris Dave Harris 6 A10 Mr Jones 2010 3
  • 17. Base Table We Will Start With
  • 18. First Normal Form • Remove “repeating” data • A primary key can be defined Primary key can uniquely identify any row in a table
  • 19. Parents student Name emergency contact student age classroom teacher school year grade level John Smith John Smith Jr John Smith 10 C110 Ms Brown 2010 6 Mary Smith John Smith Jr John Smith 10 C110 Ms Brown 2010 6 John Smith John Smith Jr Mary Smith 10 C80 Mr Green 2010 6 Mary Smith John Smith Jr Mary Smith 10 C80 Mr Green 2010 6 John Smith April Smith John Smith 9 A25 Ms Baker 2009 5 Mary Smith April Smith John Smith 9 A25 Ms Baker 2009 5 John Smith April Smith Mary Smith 9 A99 Mr Close 2009 5 Mary Smith April Smith Mary Smith 9 A99 Mr Close 2009 5 Dave Harris Julie Harris Dave Harris 6 A10 Mr Jones 2010 3
  • 20.
  • 21. Second Normal Form • Meet all requirements of 1NF • Isolate repeated subsets of data • Create the relationships
  • 22.
  • 23.
  • 24.
  • 26. * * * 1 Normalised tables with relationships 1 1 * 1
  • 27. Third Normal Form • Meet all requirements of 2NF • Pull out data that is not dependent on primary key
  • 28.
  • 30. Allow Tasks to be assigned to a user (1:N relationship) Task task_id Name Due_date description Project_id completed User_id User user_id name * 1
  • 31. Allow Tasks to be tagged with tags (N:M relationship) Task task_id name due_date description project_id completed Tag tag_id name TagTask id tag_id task_id * 1 * 1