Sobes.tech
Middle

Zaprojektuj fizyczny model danych dla systemu zarządzania zadaniami. Wyróżnij wszystkie fizyczne tabele, wskazując klucze główne (PK) i klucze obce (FK). Model powinien obejmować wszystkie przypadki użycia, które wcześniej zidentyfikowałeś.

sobes.tech AI

Odpowiedź od AI

Dla systemu zarządzania zadaniami można wyróżnić następujące główne tabele:

  1. Użytkownicy — użytkownicy systemu
  • PK: user_id
  • Pola: username, email, password_hash, created_at
  1. Zadania — zadania
  • PK: task_id
  • FK: assigned_to (user_id z Użytkowników) — użytkownik, któremu przypisano zadanie
  • FK: created_by (user_id z Użytkowników) — użytkownik, który utworzył zadanie
  • Pola: title, description, status, priority, due_date, created_at, updated_at
  1. Projekty — projekty grupujące zadania
  • PK: project_id
  • FK: owner_id (user_id z Użytkowników) — właściciel projektu
  • Pola: name, description, created_at
  1. Komentarze_Zadania — komentarze do zadań
  • PK: comment_id
  • FK: task_id (z Zadań)
  • FK: author_id (user_id z Użytkowników)
  • Pola: content, created_at
  1. Historia_Zadania — historia zmian w zadaniach
  • PK: history_id
  • FK: task_id (z Zadań)
  • FK: changed_by (user_id z Użytkowników)
  • Pola: change_type, old_value, new_value, changed_at
  1. Członkowie_Projekta — uczestnicy projektu
  • PK: (project_id, user_id)
  • FK: project_id (z Projektów)
  • FK: user_id (z Użytkowników)
  • Pola: role

Ten model obejmuje główne przypadki użycia:

  • Tworzenie i przypisywanie zadań
  • Zarządzanie projektami i uczestnikami
  • Komentowanie zadań
  • Śledzenie historii zmian

Przykład definicji tabeli Zadań:

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