Sobes.tech
Middle

Concevez un modèle de données physique pour le système de gestion des tâches. Mettez en évidence toutes les tables physiques en indiquant les clés primaires (PK) et les clés étrangères (FK). Le modèle doit couvrir tous les cas d'utilisation que vous avez identifiés précédemment.

sobes.tech IA

Réponse de l'IA

Pour le système de gestion des tâches, on peut distinguer les principales tables suivantes:

  1. Utilisateurs — utilisateurs du système
  • PK: user_id
  • Champs: username, email, password_hash, created_at
  1. Tâches — tâches
  • PK: task_id
  • FK: assigned_to (user_id de Utilisateurs) — utilisateur à qui la tâche est assignée
  • FK: created_by (user_id de Utilisateurs) — utilisateur ayant créé la tâche
  • Champs: title, description, status, priority, due_date, created_at, updated_at
  1. Projets — projets regroupant des tâches
  • PK: project_id
  • FK: owner_id (user_id de Utilisateurs) — propriétaire du projet
  • Champs: name, description, created_at
  1. Commentaires_Tâches — commentaires sur les tâches
  • PK: comment_id
  • FK: task_id (de Tâches)
  • FK: author_id (user_id de Utilisateurs)
  • Champs: content, created_at
  1. Historique_Tâches — historique des modifications des tâches
  • PK: history_id
  • FK: task_id (de Tâches)
  • FK: changed_by (user_id de Utilisateurs)
  • Champs: change_type, old_value, new_value, changed_at
  1. Membres_Projets — membres du projet
  • PK: (project_id, user_id)
  • FK: project_id (de Projets)
  • FK: user_id (de Utilisateurs)
  • Champs: role

Ce modèle couvre les cas d'utilisation principaux:

  • Création et attribution des tâches
  • Gestion des projets et des membres
  • Commentaires sur les tâches
  • Suivi de l'historique des modifications

Exemple de définition de la table Tâches:

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
);