Database Schema - najat-mansour/task-go GitHub Wiki

The selected database is a MySQL database:

Tables

users

Field Data Type Notes
id VARCHAR(255) Primary-Key (UUID)
username VARCHAR(255) Unique
password VARCHAR(255)
first_name VARCHAR(255)
last_name VARCHAR(255)
email VARCHAR(255) Unique
birthdate DATE
gender ENUM('MALE', 'FEMALE')
created_at DATETIME
app_rate TINYINT UNSIGNED BETWEEN 1 AND 5

addresses

Field Data Type Notes
id VARCHAR(255) Primary Key (UUID)
user_id VARCHAR(255) Foreign Key → users(id)
country VARCHAR(255)
city VARCHAR(255)
town VARCHAR(255)
street VARCHAR(255)

workspaces

Field Data Type Notes
id VARCHAR(255) Primary Key (UUID)
owner_id VARCHAR(255) Foreign Key → users(id)
name VARCHAR(255)
description TEXT

workspaces_viewers

Field Data Type Notes
id VARCHAR(255) Primary Key (UUID)
workspace_id VARCHAR(255) Foreign Key → workspaces(id)
viewer_id VARCHAR(255) Foreign Key → users(id)

groups

Field Data Type Notes
id VARCHAR(255) Primary Key (UUID)
workspace_id VARCHAR(255) Foreign Key → workspaces(id)
name VARCHAR(255)
color VARCHAR(255) HEX-Code for e.g. #123456
description TEXT

tasks

Field Data Type Notes
id VARCHAR(255) Primary Key (UUID)
group_id VARCHAR(255) Foreign Key → groups(id)
name VARCHAR(255)
description TEXT
status ENUM('NOT_STARTED','IN_PROGRESS','PENDING','FINISHED') Default 'NOT_STARTED'
priority ENUM('HIGH','MEDIUM','LOW') Default 'LOW'
starting_timestamp DATETIME
ending_timestamp DATETIME
is_favorite BOOLEAN Default false
assigned_to_id VARCHAR(255) Foreign Key → users(id)

sub_tasks

Field Data Type Notes
id VARCHAR(255) Primary Key (UUID)
task_id VARCHAR(255) Foreign Key → tasks(id)
name VARCHAR(255)
description TEXT
status ENUM('NOT_STARTED','IN_PROGRESS','PENDING','FINISHED') Default 'NOT_STARTED'
priority ENUM('HIGH','MEDIUM','LOW') Default 'LOW'
starting_timestamp DATETIME
ending_timestamp DATETIME

ERD (Entity Relational Diagram)

ERD
⚠️ **GitHub.com Fallback** ⚠️