Middle
Ontwerp een fysiek datamodel voor het taakbeheersysteem. Markeer alle fysieke tabellen met de aanduiding van primaire (PK) en buitenlandse sleutels (FK). Het model moet alle use cases dekken die u eerder hebt geïdentificeerd.
sobes.tech AI
Antwoord van AI
Voor het taakbeheersysteem kunnen de volgende hoofdtabellen worden onderscheiden:
- Gebruikers — systeemgebruikers
- PK: user_id
- Velden: username, email, password_hash, created_at
- Taken — taken
- PK: task_id
- FK: assigned_to (user_id uit Gebruikers) — gebruiker aan wie de taak is toegewezen
- FK: created_by (user_id uit Gebruikers) — gebruiker die de taak heeft gemaakt
- Velden: title, description, status, priority, due_date, created_at, updated_at
- Projecten — projecten die taken groeperen
- PK: project_id
- FK: owner_id (user_id uit Gebruikers) — eigenaar van het project
- Velden: name, description, created_at
- Taakomschrijvingen — opmerkingen bij taken
- PK: comment_id
- FK: task_id (uit Taken)
- FK: author_id (user_id uit Gebruikers)
- Velden: content, created_at
- Taakgeschiedenis — geschiedenis van wijzigingen in taken
- PK: history_id
- FK: task_id (uit Taken)
- FK: changed_by (user_id uit Gebruikers)
- Velden: change_type, old_value, new_value, changed_at
- Project_leden — deelnemers aan het project
- PK: (project_id, user_id)
- FK: project_id (uit Projecten)
- FK: user_id (uit Gebruikers)
- Velden: role
Dit model dekt de belangrijkste use cases:
- Aanmaken en toewijzen van taken
- Beheer van projecten en leden
- Opmerkingen bij taken
- Bijhouden van wijzigingsgeschiedenis
Voorbeeld van de definitie van de tabel Taken:
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
);