Sobes.tech
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:

  1. Gebruikers — systeemgebruikers
  • PK: user_id
  • Velden: username, email, password_hash, created_at
  1. 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
  1. Projecten — projecten die taken groeperen
  • PK: project_id
  • FK: owner_id (user_id uit Gebruikers) — eigenaar van het project
  • Velden: name, description, created_at
  1. Taakomschrijvingen — opmerkingen bij taken
  • PK: comment_id
  • FK: task_id (uit Taken)
  • FK: author_id (user_id uit Gebruikers)
  • Velden: content, created_at
  1. 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
  1. 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
);