Sobes.tech
Middle

Проектирайте физическа модел на данни за системата за управление на задачи. Изтъкнете всички физически таблици с посочване на първичните (PK) и външните (FK) ключове. Моделът трябва да покрива всички случаи на употреба, които сте идентифицирали по-рано.

sobes.tech AI

Отговор от AI

За системата за управление на задачи могат да се выделят следните основни таблици:

  1. Потребители — потребителите на системата
  • PK: user_id
  • Полета: username, email, password_hash, created_at
  1. Задачи — задачите
  • PK: task_id
  • FK: assigned_to (user_id от Таблица Потребители) — потребител, на когото е възложена задачата
  • FK: created_by (user_id от Таблица Потребители) — потребител, който е създал задачата
  • Полета: title, description, status, priority, due_date, created_at, updated_at
  1. Проекти — проекти, които групират задачи
  • PK: project_id
  • FK: owner_id (user_id от Таблица Потребители) — собственик на проекта
  • Полета: name, description, created_at
  1. Коментари_к_задачите — коментари към задачите
  • PK: comment_id
  • FK: task_id (от Таблица Задачи)
  • FK: author_id (user_id от Таблица Потребители)
  • Полета: content, created_at
  1. История_на_задачите — история на промените в задачите
  • PK: history_id
  • FK: task_id (от Таблица Задачи)
  • FK: changed_by (user_id от Таблица Потребители)
  • Полета: change_type, old_value, new_value, changed_at
  1. Членове_на_проекта — участници в проекта
  • PK: (project_id, user_id)
  • FK: project_id (от Таблица Проекти)
  • FK: user_id (от Таблица Потребители)
  • Полета: role

Тази модел обхваща основните случаи на употреба:

  • Създаване и назначаване на задачи
  • Управление на проекти и участници
  • Коментиране на задачи
  • Следене на историята на промените

Пример за дефиниране на таблицата Задачи:

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
);