ERD Documentation
Introduction
The Entity Relationship Diagram (ERD) provides a visual representation of the database schema and the relationships between the entities. The ERD helps to understand the structure of the database and the connections between the tables.
Project Management Entity Relationship Diagram
The following diagram illustrates the relationships between the entities in the application:
Database Relationships Diagram
The following diagram illustrates the relationships between the entities in the database model:
Database Entities Definition
| Entity | Description |
|---|---|
| user | Represents an individual user in the application. |
| workspace | Represents a workspace that organizes projects and members. A workspace is owned by a single user. |
| project | Represents a project within a workspace, containing tasks and other project-related data. |
| list | Represents a list within a project, where tasks can be organized. List in Zello is also a kanban column that contains tasks. |
| task | Represents an individual task within a project and list. |
| comment | Represents a comment made by a user on a task. |
| workspace_member | Represents a user’s membership in a workspace with a specific role. |
| project_member | Represents a user’s membership in a project with a specific role. |
| task_assignee | Represents the assignment of a task to a user. |
| role | Represents a role that defines a user’s permissions in a workspace or project. A role can be Admin, Member, Owner or Guest |
Database Relationship Summary
| Entities | Relationship Type | Description |
|---|---|---|
user ↔ workspace_member | One-to-Many | A user can be a member of multiple workspaces, but each workspace member corresponds to only one user. |
user ↔ workspace | One-to-Many | A user can own multiple workspaces, but each workspace is owned by a single user. |
user ↔ comment | One-to-Many | A user can write multiple comments, but each comment is written by one user. |
user ↔ task_assignee | One-to-Many | A user can be assigned to multiple tasks, but each task assignment references one user. |
workspace ↔ workspace_member | One-to-Many | A workspace can have multiple members, but each membership references one workspace. |
workspace ↔ project | One-to-Many | A workspace can contain multiple projects, but each project belongs to one workspace. |
project ↔ project_member | One-to-Many | A project can have multiple members, but each project membership references one project. |
workspace_member ↔ project_member | One-to-Many | A workspace member can belong to multiple projects, but each project member references one workspace member. |
project ↔ list | One-to-Many | A project can contain multiple lists, but each list belongs to one project. |
list ↔ task | One-to-Many | A list can contain multiple tasks, but each task belongs to one list. |
task ↔ task_assignee | One-to-Many | A task can have multiple assignees, but each task assignment references one task. |
task ↔ comment | One-to-Many | A task can have multiple comments, but each comment references one task. |