Sobes.tech
Middle

Navrhněte fyzický datový model pro systém správy úkolů. Vyzdvihněte všechny fyzické tabulky s označením primárních (PK) a cizích (FK) klíčů. Model by měl pokrýt všechny případy použití, které jste dříve identifikovali.

sobes.tech AI

Odpověď od AI

Pro systém správy úkolů lze vyzdvihnout následující hlavní tabulky:

  1. Uživatelé — uživatelé systému
  • PK: user_id
  • Pole: username, email, password_hash, created_at
  1. Úkoly — úkoly
  • PK: task_id
  • FK: assigned_to (user_id z tabulky Uživatelé) — uživatel, kterému je úkol přiřazen
  • FK: created_by (user_id z tabulky Uživatelé) — uživatel, který úkol vytvořil
  • Pole: title, description, status, priority, due_date, created_at, updated_at
  1. Projekty — projekty, které seskupují úkoly
  • PK: project_id
  • FK: owner_id (user_id z tabulky Uživatelé) — vlastník projektu
  • Pole: name, description, created_at
  1. Komentáře_k_úkolům — komentáře k úkolům
  • PK: comment_id
  • FK: task_id (z tabulky Úkoly)
  • FK: author_id (user_id z tabulky Uživatelé)
  • Pole: content, created_at
  1. Historie_úkolů — historie změn úkolů
  • PK: history_id
  • FK: task_id (z tabulky Úkoly)
  • FK: changed_by (user_id z tabulky Uživatelé)
  • Pole: change_type, old_value, new_value, changed_at
  1. Členové_projektu — členové projektu
  • PK: (project_id, user_id)
  • FK: project_id (z tabulky Projekty)
  • FK: user_id (z tabulky Uživatelé)
  • Pole: role

Tento model pokrývá hlavní případy použití:

  • Vytváření a přiřazování úkolů
  • Správa projektů a členů
  • Komentování úkolů
  • Sledování historie změn

Příklad definice tabulky Úkoly:

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