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:
- Użytkownicy — użytkownicy systemu
- PK: user_id
- Pola: username, email, password_hash, created_at
- 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
- 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
- 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
- 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
- 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
);