Middle
Projete um modelo de dados físico para o sistema de gestão de tarefas. Destaque todas as tabelas físicas indicando as chaves primárias (PK) e as chaves estrangeiras (FK). O modelo deve cobrir todos os casos de uso que você identificou anteriormente.
sobes.tech IA
Resposta da IA
Para o sistema de gestão de tarefas, podem destacar-se as seguintes tabelas principais:
- Utilizadores — utilizadores do sistema
- PK: user_id
- Campos: username, email, password_hash, created_at
- Tarefas — tarefas
- PK: task_id
- FK: assigned_to (user_id de Utilizadores) — utilizador a quem a tarefa está atribuída
- FK: created_by (user_id de Utilizadores) — utilizador que criou a tarefa
- Campos: title, description, status, priority, due_date, created_at, updated_at
- Projetos — projetos que agrupam tarefas
- PK: project_id
- FK: owner_id (user_id de Utilizadores) — proprietário do projeto
- Campos: name, description, created_at
- Comentários_Tarefa — comentários às tarefas
- PK: comment_id
- FK: task_id (de Tarefas)
- FK: author_id (user_id de Utilizadores)
- Campos: content, created_at
- Histórico_Tarefa — histórico de alterações nas tarefas
- PK: history_id
- FK: task_id (de Tarefas)
- FK: changed_by (user_id de Utilizadores)
- Campos: change_type, old_value, new_value, changed_at
- Membros_Projeto — membros do projeto
- PK: (project_id, user_id)
- FK: project_id (de Projetos)
- FK: user_id (de Utilizadores)
- Campos: role
Este modelo cobre os principais casos de uso:
- Criação e atribuição de tarefas
- Gestão de projetos e membros
- Comentários em tarefas
- Acompanhamento do histórico de alterações
Exemplo de definição da tabela Tarefas:
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
);