Database Schema - sezder/HQ GitHub Wiki
Minimal Product
![Minimal Database Schema](https://i.imgur.com/Qc8WvII.png)
Users
Column Name |
Data Type |
Details |
id |
integer |
primary key |
first_name |
string |
not null |
last_name |
string |
not null |
email |
string |
not null, unique |
job_title |
string(50) |
not null |
hashed_password |
binary |
not null |
icon_url |
text |
|
Projects
Column Name |
Data Type |
Details |
id |
integer |
primary key |
name |
string |
not null |
description |
text |
|
creator_id |
integer |
foreign key |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
To-do Lists
Column Name |
Data Type |
Details |
id |
integer |
primary key |
title |
string |
not null |
description |
text |
|
project_id |
integer |
foreign key |
creator_id |
integer |
foreign key |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
To-dos
Column Name |
Data Type |
Details |
id |
integer |
primary key |
task |
string |
not null |
list_id |
integer |
foreign key |
creator_id |
integer |
foreign key |
completed |
boolean |
not null, default=false |
due |
datetime |
not null?* |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
- Unsure if I want to deal with "uncategorized" tasks when rendering them by date due.
Two Additional Features
![Four Features Schema](https://i.imgur.com/Yrt7k7a.png)
Messages
Column Name |
Data Type |
Details |
id |
integer |
primary key |
subject_line |
string |
not null |
content |
text |
not null |
project_id |
integer |
foreign key |
creator_id |
integer |
foreign key |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
Comments
Column Name |
Data Type |
Details |
id |
integer |
primary key |
content |
text |
not null |
creator_id |
integer |
foreign key |
message_id |
integer |
foreign key |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
Bonus: Assignments
![Relationships](https://i.imgur.com/OoNwuLZ.png)
Join Tables
Users_Todos (to-do assignments)
Column Name |
Data Type |
Details |
id |
integer |
primary key |
user_id |
integer |
foreign key |
todo_id |
integer |
foreign key |
Users_Projects (user membership in projects)
Column Name |
Data Type |
Details |
id |
integer |
primary key |
user_id |
integer |
foreign key |
project_id |
integer |
foreign key |