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:
- Uživatelé — uživatelé systému
- PK: user_id
- Pole: username, email, password_hash, created_at
- Ú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
- 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
- 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
- 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
- Č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
);