Untitled
unknown
sql
a year ago
4.6 kB
12
Indexable
-- Pengguna
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
role ENUM('superadmin', 'manager', 'user') NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- Status
CREATE TABLE status (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- Prioritas
CREATE TABLE priorities (
id INT AUTO_INCREMENT PRIMARY KEY,
name ENUM('Biasa', 'Mendesak', 'Urgent') NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- Tabel ticket_categories (Kategori Permasalahan)
CREATE TABLE ticket_categories (
id INT AUTO_INCREMENT PRIMARY KEY,
name ENUM('AX', 'CRM', 'POS', 'MIS', 'Report', 'Development', 'Website', 'Network', 'Server', 'Support Event', 'Meeting', ) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- Tiket
CREATE TABLE tickets (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
subject VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
status_id INT NOT NULL,
priority_id INT NOT NULL,
category_id INT DEFAULT NULL,
assigned_to INT DEFAULT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
FOREIGN KEY (status_id) REFERENCES statuses(id) ON DELETE SET NULL,
FOREIGN KEY (priority_id) REFERENCES priorities(id) ON DELETE SET NULL,
FOREIGN KEY (category_id) REFERENCES ticket_categories(id) ON DELETE SET NULL,
FOREIGN KEY (assigned_to) REFERENCES users(id) ON DELETE SET NULL
);
-- Inputan user
CREATE TABLE comments (
id INT AUTO_INCREMENT PRIMARY KEY,
ticket_id INT NOT NULL,
user_id INT NOT NULL,
comment TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (ticket_id) REFERENCES tickets(id) ON DELETE CASCADE,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
-- Attachments
CREATE TABLE attachments (
id INT AUTO_INCREMENT PRIMARY KEY,
ticket_id INT NOT NULL,
file_path VARCHAR(255) NOT NULL,
file_name VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (ticket_id) REFERENCES tickets(id) ON DELETE CASCADE
);
-- bagian SLA
CREATE TABLE sla_policies (
id INT AUTO_INCREMENT PRIMARY KEY,
priority_id INT NOT NULL,
category_id INT NOT NULL,
response_time INT NOT NULL, -- Waktu dalam jam
resolution_time INT NOT NULL, -- Waktu dalam jam
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (priority_id) REFERENCES priorities(id) ON DELETE CASCADE,
FOREIGN KEY (category_id) REFERENCES ticket_categories(id) ON DELETE CASCADE
);
-- ticket_logs
CREATE TABLE ticket_logs (
id INT AUTO_INCREMENT PRIMARY KEY,
ticket_id INT NOT NULL,
user_id INT NOT NULL,
action VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (ticket_id) REFERENCES tickets(id) ON DELETE CASCADE,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
-- Departemen
CREATE TABLE departments (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- Beban Pekerjaan
CREATE TABLE workload (
id INT AUTO_INCREMENT PRIMARY KEY,
ticket_id INT NOT NULL,
completion_time ENUM('Jam', 'Hari') NOT NULL, -- Apakah selesai dalam hitungan jam atau hari
estimated_duration INT NOT NULL, -- Durasi estimasi (angka)
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (ticket_id) REFERENCES tickets(id) ON DELETE CASCADE
);
Editor is loading...
Leave a Comment