diff --git a/database.sql b/database.sql deleted file mode 100644 index 393bb84..0000000 --- a/database.sql +++ /dev/null @@ -1,142 +0,0 @@ --- ============================================================ --- database.sql — WebGIS Poverty Mapping v2 --- Tiara Chontesa — D0141231070 --- ============================================================ - -CREATE DATABASE IF NOT EXISTS db_bantuan - CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -USE db_bantuan; - --- ──────────────────────────────────────── --- USERS (3 role: admin, relawan, pengurus, pemerintah) --- ──────────────────────────────────────── -CREATE TABLE IF NOT EXISTS users ( - id INT AUTO_INCREMENT PRIMARY KEY, - nama_lengkap VARCHAR(150) NOT NULL, - username VARCHAR(80) NOT NULL UNIQUE, - email VARCHAR(150) NOT NULL UNIQUE, - password VARCHAR(255) NOT NULL, - role ENUM('admin','relawan','pengurus','pemerintah') NOT NULL DEFAULT 'relawan', - foto VARCHAR(255) DEFAULT NULL, - aktif TINYINT(1) NOT NULL DEFAULT 1, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - last_login TIMESTAMP NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- Seed: admin default (password: admin123) -INSERT INTO users (nama_lengkap, username, email, password, role) VALUES -('Administrator', 'admin', 'admin@webgis.id', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'admin'); - --- ──────────────────────────────────────── --- RUMAH IBADAH --- ──────────────────────────────────────── -CREATE TABLE IF NOT EXISTS rumah_ibadah ( - id INT AUTO_INCREMENT PRIMARY KEY, - nama_ibadah VARCHAR(150) NOT NULL, - kategori ENUM('Masjid','Musholla','Gereja','Pura','Vihara','Klenteng','Lainnya') NOT NULL DEFAULT 'Masjid', - alamat VARCHAR(255) DEFAULT NULL, - nama_pengurus VARCHAR(100) DEFAULT NULL, - no_telp VARCHAR(20) DEFAULT NULL, - kuota_bantuan INT NOT NULL DEFAULT 20, - radius_m INT NOT NULL DEFAULT 300, - lat DOUBLE NOT NULL, - lng DOUBLE NOT NULL, - dibuat_oleh INT DEFAULT NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - FOREIGN KEY (dibuat_oleh) REFERENCES users(id) ON DELETE SET NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ──────────────────────────────────────── --- RUMAH MISKIN / KPM --- ──────────────────────────────────────── -CREATE TABLE IF NOT EXISTS rumah_miskin ( - id INT AUTO_INCREMENT PRIMARY KEY, - nama_kepala_keluarga VARCHAR(150) NOT NULL, - nik VARCHAR(16) DEFAULT NULL, - tanggal_lahir DATE DEFAULT NULL, - jenis_kelamin ENUM('Laki-laki','Perempuan') DEFAULT 'Laki-laki', - jumlah_tanggungan TINYINT DEFAULT 0, - pendapatan_bulanan BIGINT DEFAULT 0, - pekerjaan VARCHAR(100) DEFAULT NULL, - kondisi_rumah ENUM('Layak','Tidak Layak','Sangat Tidak Layak') NOT NULL DEFAULT 'Tidak Layak', - no_telp VARCHAR(20) DEFAULT NULL, - rt_rw VARCHAR(20) DEFAULT NULL, - kelurahan VARCHAR(100) DEFAULT NULL, - kecamatan VARCHAR(100) DEFAULT NULL, - keterangan TEXT DEFAULT NULL, - status_bantuan ENUM('Belum Terbantu','Terjangkau','Sudah Menerima') NOT NULL DEFAULT 'Belum Terbantu', - prioritas TINYINT(1) DEFAULT 0 COMMENT '1 = prioritas tinggi (terdampak bencana)', - lat DOUBLE NOT NULL, - lng DOUBLE NOT NULL, - didata_oleh INT DEFAULT NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - FOREIGN KEY (didata_oleh) REFERENCES users(id) ON DELETE SET NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ──────────────────────────────────────── --- BENCANA --- ──────────────────────────────────────── -CREATE TABLE IF NOT EXISTS bencana ( - id INT AUTO_INCREMENT PRIMARY KEY, - nama_bencana VARCHAR(150) NOT NULL, - jenis ENUM('Banjir','Kebakaran','Gempa Bumi','Longsor','Angin Puting Beliung','Lainnya') NOT NULL DEFAULT 'Banjir', - tanggal DATE NOT NULL, - lokasi VARCHAR(255) DEFAULT NULL, - deskripsi TEXT DEFAULT NULL, - status ENUM('Aktif','Selesai') NOT NULL DEFAULT 'Aktif', - lat DOUBLE DEFAULT NULL, - lng DOUBLE DEFAULT NULL, - radius_m INT DEFAULT 500, - dibuat_oleh INT DEFAULT NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - FOREIGN KEY (dibuat_oleh) REFERENCES users(id) ON DELETE SET NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ──────────────────────────────────────── --- WARGA TERDAMPAK BENCANA (relasi N:M) --- ──────────────────────────────────────── -CREATE TABLE IF NOT EXISTS bencana_terdampak ( - id INT AUTO_INCREMENT PRIMARY KEY, - bencana_id INT NOT NULL, - warga_id INT NOT NULL, - tingkat ENUM('Ringan','Sedang','Berat') DEFAULT 'Sedang', - keterangan TEXT DEFAULT NULL, - ditandai_oleh INT DEFAULT NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - UNIQUE KEY unik_bencana_warga (bencana_id, warga_id), - FOREIGN KEY (bencana_id) REFERENCES bencana(id) ON DELETE CASCADE, - FOREIGN KEY (warga_id) REFERENCES rumah_miskin(id) ON DELETE CASCADE, - FOREIGN KEY (ditandai_oleh) REFERENCES users(id) ON DELETE SET NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ──────────────────────────────────────── --- BANTUAN TERSALUR --- ──────────────────────────────────────── -CREATE TABLE IF NOT EXISTS bantuan_tersalur ( - id INT AUTO_INCREMENT PRIMARY KEY, - warga_id INT NOT NULL, - ibadah_id INT DEFAULT NULL, - bencana_id INT DEFAULT NULL, - jenis_bantuan VARCHAR(150) NOT NULL, - jumlah VARCHAR(100) DEFAULT NULL COMMENT 'mis: 50kg beras, Rp500.000', - tanggal DATE NOT NULL, - petugas VARCHAR(150) DEFAULT NULL, - keterangan TEXT DEFAULT NULL, - disalurkan_oleh INT DEFAULT NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - FOREIGN KEY (warga_id) REFERENCES rumah_miskin(id) ON DELETE CASCADE, - FOREIGN KEY (ibadah_id) REFERENCES rumah_ibadah(id) ON DELETE SET NULL, - FOREIGN KEY (bencana_id) REFERENCES bencana(id) ON DELETE SET NULL, - FOREIGN KEY (disalurkan_oleh) REFERENCES users(id) ON DELETE SET NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ──────────────────────────────────────── --- INDEX --- ──────────────────────────────────────── -CREATE INDEX idx_miskin_coords ON rumah_miskin (lat, lng); -CREATE INDEX idx_ibadah_coords ON rumah_ibadah (lat, lng); -CREATE INDEX idx_miskin_status ON rumah_miskin (status_bantuan); -CREATE INDEX idx_miskin_prioritas ON rumah_miskin (prioritas); -CREATE INDEX idx_bencana_status ON bencana (status); \ No newline at end of file