Untitled
unknown
sql
20 days ago
4.6 kB
2
Indexable
Never
-- 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 );
Leave a Comment