ENTITY 01
Users
The people who own and complete work.
| Field | Type | Required | Description |
|---|---|---|---|
id | string · uuid | Yes | Unique identifier for the user. |
name | string | Yes | Display name of the user. |
email | string · email | Yes | Email address of the user. |
A considered blueprint for the people, work, and connections that make a task management system tick.
The essential building blocks, defined field by field.
The people who own and complete work.
| Field | Type | Required | Description |
|---|---|---|---|
id | string · uuid | Yes | Unique identifier for the user. |
name | string | Yes | Display name of the user. |
email | string · email | Yes | Email address of the user. |
The individual pieces of work to be tracked.
| Field | Type | Required | Description |
|---|---|---|---|
id | string · uuid | Yes | Unique identifier for the task. |
title | string | Yes | Short, descriptive name of the task. |
description | string | Yes | Details of the work to be completed. |
status | string · enum | Yes | One of: todo, in_progress, done. |
assigned_to_user_id | string · uuid | Yes | References the id of the assigned user. |
A simple link that gives every task an owner.
Each task is assigned to exactly one user. A user can have zero or many tasks assigned to them.
users.idtasks.assigned_to_user_idJSON Schema validates structure, not whether referenced user IDs exist or IDs are unique. Enforce referential integrity and uniqueness in your application or database.
Structured tables for Users, Tasks, and their relationship.
# Task Management System — Schema
## Entities
### Users
| Field | Type | Required | Description |
| :--- | :--- | :---: | :--- |
| `id` | string · uuid | Yes | Unique identifier for the user. |
| `name` | string | Yes | Display name of the user. |
| `email` | string · email | Yes | Email address of the user. |
### Tasks
| Field | Type | Required | Description |
| :--- | :--- | :---: | :--- |
| `id` | string · uuid | Yes | Unique identifier for the task. |
| `title` | string | Yes | Short, descriptive name of the task. |
| `description` | string | Yes | Details of the work to be completed. |
| `status` | string · enum | Yes | One of: todo, in_progress, done. |
| `assigned_to_user_id` | string · uuid | Yes | References the id of the assigned user. |
## Relationship
| From | To | Cardinality | Key mapping | Rule |
| :--- | :--- | :--- | :--- | :--- |
| Users | Tasks | One-to-many (1:N) | `tasks.assigned_to_user_id` → `users.id` | Each task is assigned to exactly one user; a user can have zero or many tasks. |
> JSON Schema validates document structure. Uniqueness of IDs and whether an assigned user exists must be enforced by the application or database.A reusable Draft 2020-12 definition with clear types and constraints.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Task Management System",
"description": "A collection of users and the tasks assigned to them.",
"type": "object",
"required": [
"users",
"tasks"
],
"properties": {
"users": {
"type": "array",
"description": "Users who can be assigned tasks.",
"items": {
"$ref": "#/$defs/User"
}
},
"tasks": {
"type": "array",
"description": "Tasks assigned to users.",
"items": {
"$ref": "#/$defs/Task"
}
}
},
"additionalProperties": false,
"$defs": {
"User": {
"type": "object",
"required": [
"id",
"name",
"email"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "Unique identifier for the user."
},
"name": {
"type": "string",
"minLength": 1,
"description": "Display name of the user."
},
"email": {
"type": "string",
"format": "email",
"description": "Email address of the user."
}
},
"additionalProperties": false
},
"Task": {
"type": "object",
"required": [
"id",
"title",
"description",
"status",
"assigned_to_user_id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "Unique identifier for the task."
},
"title": {
"type": "string",
"minLength": 1,
"description": "Short, descriptive name of the task."
},
"description": {
"type": "string",
"description": "Details of the work to be completed."
},
"status": {
"type": "string",
"enum": [
"todo",
"in_progress",
"done"
],
"description": "Current stage of the task."
},
"assigned_to_user_id": {
"type": "string",
"format": "uuid",
"description": "References users[].id. Referential integrity is enforced by the application or database."
}
},
"additionalProperties": false
}
}
}format keyword may be treated as an annotation by some validators. Enable format assertion if you need UUID and email format validation.