Upload files to "/"
This commit is contained in:
+142
@@ -0,0 +1,142 @@
|
||||
-- ============================================================
|
||||
-- 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);
|
||||
Reference in New Issue
Block a user