Sobes.tech
Middle

Hozzon létre egy fizikai adatmodellt a feladatkezelő rendszerhez. Emelje ki az összes fizikai táblát a primer (PK) és idegen (FK) kulcsok megjelölésével. A modellnek lefednie kell az összes korábban azonosított felhasználási esetet.

sobes.tech MI

Válasz az MI-től

A feladatkezelő rendszerhez az alábbi fő táblákat lehet kiemelni:

  1. Felhasználók — a rendszer felhasználói
  • PK: user_id
  • Mezők: username, email, password_hash, created_at
  1. Feladatok — feladatok
  • PK: task_id
  • FK: assigned_to (felhasználói azonosító a Felhasználók táblából) — a felhasználó, akinek a feladat van kijelölve
  • FK: created_by (felhasználói azonosító a Felhasználók táblából) — a felhasználó, aki létrehozta a feladatot
  • Mezők: title, description, status, priority, due_date, created_at, updated_at
  1. Projektek — projektek, amelyek csoportosítják a feladatokat
  • PK: project_id
  • FK: owner_id (felhasználói azonosító a Felhasználók táblából) — a projekt tulajdonosa
  • Mezők: name, description, created_at
  1. Feladat_Hozzászólások — hozzászólások a feladatokhoz
  • PK: comment_id
  • FK: task_id (a Feladatokból)
  • FK: author_id (felhasználói azonosító a Felhasználók táblából)
  • Mezők: content, created_at
  1. Feladat_Történet — a feladatok változásainak története
  • PK: history_id
  • FK: task_id (a Feladatokból)
  • FK: changed_by (felhasználói azonosító a Felhasználók táblából)
  • Mezők: change_type, old_value, new_value, changed_at
  1. Projekt_Tagok — a projekt résztvevői
  • PK: (project_id, user_id)
  • FK: project_id (a Projektekből)
  • FK: user_id (a Felhasználók táblából)
  • Mezők: role

Ez a modell lefedi a főbb felhasználási eseteket:

  • Feladatok létrehozása és kijelölése
  • Projektek és résztvevők kezelése
  • Feladatok hozzászólásai
  • A változások történetének nyomon követése

Példa a Feladatok tábla definíciójára:

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