Sobes.tech
Middle

Görev yönetim sistemi için fiziksel bir veri modeli tasarlayın. Tüm fiziksel tabloları, birincil anahtarlar (PK) ve yabancı anahtarlar (FK) belirtilerek vurgulayın. Model, daha önce belirlediğiniz tüm kullanım durumlarını kapsamalıdır.

sobes.tech yapay zeka

AI'dan gelen yanıt

Görev yönetim sistemi için aşağıdaki temel tablolar öne çıkmaktadır:

  1. Kullanıcılar — sistem kullanıcıları
  • PK: user_id
  • Alanlar: username, email, password_hash, created_at
  1. Görevler — görevler
  • PK: task_id
  • FK: assigned_to (Kullanıcılar tablosundan user_id) — görevin atandığı kullanıcı
  • FK: created_by (Kullanıcılar tablosundan user_id) — görevi oluşturan kullanıcı
  • Alanlar: title, description, status, priority, due_date, created_at, updated_at
  1. Projeler — görevleri gruplayan projeler
  • PK: project_id
  • FK: owner_id (Kullanıcılar tablosundan user_id) — projenin sahibi
  • Alanlar: name, description, created_at
  1. Görev_Yorumları — görevlere yapılan yorumlar
  • PK: comment_id
  • FK: task_id (Görevler tablosundan)
  • FK: author_id (Kullanıcılar tablosundan user_id)
  • Alanlar: content, created_at
  1. Görev_Tarihi — görevlerin değişiklik geçmişi
  • PK: history_id
  • FK: task_id (Görevler tablosundan)
  • FK: changed_by (Kullanıcılar tablosundan user_id)
  • Alanlar: change_type, old_value, new_value, changed_at
  1. Proje_Uyeleri — projeye katılan üyeler
  • PK: (project_id, user_id)
  • FK: project_id (Projeler tablosundan)
  • FK: user_id (Kullanıcılar tablosundan)
  • Alanlar: role

Bu model temel kullanım durumlarını kapsar:

  • Görevlerin oluşturulması ve atanması
  • Proje ve üye yönetimi
  • Görev yorumları
  • Değişiklik geçmişinin takibi

Görevler tablosunun tanımı örneği:

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