Sobes.tech
Middle

Diseñe un modelo de datos físico para el sistema de gestión de tareas. Destaque todas las tablas físicas con la indicación de las claves primarias (PK) y las claves externas (FK). El modelo debe cubrir todos los casos de uso que identificó anteriormente.

sobes.tech AI

Respuesta de la IA

Для системы управления задачами можно выделить следующие основные таблицы:

  1. Users — пользователи системы
  • PK: user_id
  • Поля: username, email, password_hash, created_at
  1. Tasks — задачи
  • PK: task_id
  • FK: assigned_to (user_id из Users) — пользователь, которому назначена задача
  • FK: created_by (user_id из Users) — пользователь, создавший задачу
  • Поля: title, description, status, priority, due_date, created_at, updated_at
  1. Projects — проекты, объединяющие задачи
  • PK: project_id
  • FK: owner_id (user_id из Users) — владелец проекта
  • Поля: name, description, created_at
  1. Task_Comments — комментарии к задачам
  • PK: comment_id
  • FK: task_id (из Tasks)
  • FK: author_id (user_id из Users)
  • Поля: content, created_at
  1. Task_History — история изменений задач
  • PK: history_id
  • FK: task_id (из Tasks)
  • FK: changed_by (user_id из Users)
  • Поля: change_type, old_value, new_value, changed_at
  1. Project_Members — участники проекта
  • PK: (project_id, user_id)
  • FK: project_id (из Projects)
  • FK: user_id (из Users)
  • Поля: role

Эта модель покрывает основные use case:

  • Создание и назначение задач
  • Управление проектами и участниками
  • Комментирование задач
  • Отслеживание истории изменений

Пример определения таблицы Tasks:

CREATE TABLE Tasks (
    task_id SERIAL PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    description TEXT,
    status VARCHAR(50) NOT NULL,
    priority INT,
    due_date DATE,
    assigned_to INT REFERENCES Users(user_id),
    created_by INT REFERENCES Users(user_id),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP
);