From ffcf9771fac99cdcc413bf0811a93d8f1b747ca2 Mon Sep 17 00:00:00 2001 From: L4zyL4mb Date: Fri, 12 Jun 2026 14:30:47 +0700 Subject: [PATCH] Revisi DB --- sig-kemiskinan/database.sql | 732 ++++++++++++++++++++---------------- 1 file changed, 410 insertions(+), 322 deletions(-) diff --git a/sig-kemiskinan/database.sql b/sig-kemiskinan/database.sql index f6ed1c4..c75e57e 100644 --- a/sig-kemiskinan/database.sql +++ b/sig-kemiskinan/database.sql @@ -1,363 +1,451 @@ --- ============================================================ --- SIG Penduduk Miskin v2.0 – Database Schema --- WebGIS Pendataan & Monitoring Bantuan Sosial --- Update: 2026 | Versi: 2.0 --- ============================================================ +-- phpMyAdmin SQL Dump +-- version 5.2.3 +-- https://www.phpmyadmin.net/ +-- +-- Host: localhost:3306 +-- Generation Time: Jun 11, 2026 at 02:26 PM +-- Server version: 8.0.30 +-- PHP Version: 8.3.30 -CREATE DATABASE IF NOT EXISTS sig_kemiskinan CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -USE sig_kemiskinan; +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; -SET FOREIGN_KEY_CHECKS = 0; --- ============================================================ --- TABEL 1: users --- ============================================================ -CREATE TABLE IF NOT EXISTS users ( - id INT AUTO_INCREMENT PRIMARY KEY, - nama VARCHAR(100) NOT NULL, - username VARCHAR(50) NOT NULL UNIQUE, - password VARCHAR(255) NOT NULL COMMENT 'bcrypt hash', - role ENUM('admin','petugas','pimpinan') NOT NULL DEFAULT 'petugas', - wilayah_tugas VARCHAR(100) NULL COMMENT 'Kelurahan/RT wilayah tugas petugas', - aktif TINYINT(1) DEFAULT 1, - last_login TIMESTAMP NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - INDEX idx_username (username), - INDEX idx_role (role) -); +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; --- ============================================================ --- TABEL 2: wilayah --- ============================================================ -CREATE TABLE IF NOT EXISTS wilayah ( - id INT AUTO_INCREMENT PRIMARY KEY, - kelurahan VARCHAR(100) NOT NULL, - kecamatan VARCHAR(100) NOT NULL, - kota VARCHAR(100) NOT NULL DEFAULT 'Pontianak', - rt VARCHAR(10) NULL, - rw VARCHAR(10) NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - INDEX idx_kelurahan (kelurahan), - INDEX idx_kecamatan (kecamatan) -); +-- +-- Database: `sig_kemiskinan` +-- --- ============================================================ --- TABEL 3: rumah_ibadah (Tidak berubah) --- ============================================================ -CREATE TABLE IF NOT EXISTS rumah_ibadah ( - id INT AUTO_INCREMENT PRIMARY KEY, - nama VARCHAR(255) NOT NULL, - jenis ENUM('masjid','musholla','gereja','pura','vihara','klenteng','lainnya') DEFAULT 'masjid', - alamat TEXT, - pic VARCHAR(255) COMMENT 'Person In Charge / Penanggung Jawab', - no_wa VARCHAR(20), - lat DECIMAL(10, 8) NOT NULL, - lng DECIMAL(11, 8) NOT NULL, - radius INT DEFAULT 500 COMMENT 'Radius dalam meter', - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -); +-- -------------------------------------------------------- --- ============================================================ --- TABEL 4: penduduk_miskin (DIPERLUAS dari v1.1) --- ============================================================ -CREATE TABLE IF NOT EXISTS penduduk_miskin ( - id INT AUTO_INCREMENT PRIMARY KEY, +-- +-- Table structure for table `bantuan_penduduk` +-- - -- Identitas Kepala Keluarga - nik_kk VARCHAR(16) NOT NULL UNIQUE COMMENT 'NIK KK 16 digit', - nama_kk VARCHAR(255) NOT NULL COMMENT 'Nama Kepala Keluarga', - no_hp VARCHAR(20) NULL COMMENT 'No HP/WhatsApp', +CREATE TABLE `bantuan_penduduk` ( + `id` int NOT NULL, + `penduduk_id` int NOT NULL, + `bantuan_id` int NOT NULL, + `status` enum('aktif','tidak_aktif','dicabut') DEFAULT 'aktif', + `tanggal_mulai` date DEFAULT NULL, + `tanggal_selesai` date DEFAULT NULL, + `nominal_bulanan` decimal(12,2) DEFAULT NULL, + `nomor_kpj` varchar(50) DEFAULT NULL COMMENT 'Nomor kartu/KPJ bantuan', + `keterangan` text, + `diinput_oleh` int DEFAULT NULL COMMENT 'FK users', + `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; - -- Lokasi - alamat TEXT NULL, - wilayah_id INT NULL, - rt VARCHAR(10) NULL, - rw VARCHAR(10) NULL, - lat DECIMAL(10,8) NOT NULL, - lng DECIMAL(11,8) NOT NULL, +-- +-- Dumping data for table `bantuan_penduduk` +-- - -- Data Keluarga - jumlah_anggota INT NOT NULL DEFAULT 1, - jumlah_anak_sekolah INT NOT NULL DEFAULT 0, +INSERT INTO `bantuan_penduduk` (`id`, `penduduk_id`, `bantuan_id`, `status`, `tanggal_mulai`, `tanggal_selesai`, `nominal_bulanan`, `nomor_kpj`, `keterangan`, `diinput_oleh`, `created_at`, `updated_at`) VALUES +(12, 14, 6, 'tidak_aktif', NULL, NULL, NULL, NULL, NULL, 1, '2026-06-10 12:38:35', '2026-06-10 13:50:53'), +(13, 16, 3, 'aktif', NULL, NULL, NULL, NULL, NULL, 2, '2026-06-10 13:52:56', '2026-06-10 13:52:56'), +(14, 16, 6, 'aktif', NULL, NULL, NULL, NULL, NULL, 2, '2026-06-10 13:52:56', '2026-06-10 13:52:56'); - -- Data Ekonomi - penghasilan_bulanan DECIMAL(12,2) NULL COMMENT 'Penghasilan per bulan (Rp)', - sumber_penghasilan VARCHAR(255) NULL, - status_pekerjaan ENUM( - 'tidak_bekerja','buruh_harian','petani','nelayan', - 'pedagang','pegawai_swasta','wiraswasta','lainnya' - ) DEFAULT 'tidak_bekerja', +-- -------------------------------------------------------- - -- Kategori Kemiskinan (dihitung otomatis) - kategori_kemiskinan ENUM('sangat_miskin','miskin','hampir_miskin','mampu') DEFAULT 'sangat_miskin', +-- +-- Table structure for table `foto_rumah` +-- - -- Kondisi Rumah - kondisi_rumah ENUM('sangat_tidak_layak','tidak_layak','layak') DEFAULT 'tidak_layak', - kepemilikan_rumah ENUM('milik_sendiri','kontrak','menumpang','lainnya') DEFAULT 'milik_sendiri', +CREATE TABLE `foto_rumah` ( + `id` int NOT NULL, + `penduduk_id` int NOT NULL, + `file_path` varchar(500) NOT NULL COMMENT 'Path relatif dari root web', + `lat_foto` decimal(10,8) DEFAULT NULL COMMENT 'Koordinat GPS saat foto diambil', + `lng_foto` decimal(11,8) DEFAULT NULL, + `accuracy_meter` decimal(8,2) DEFAULT NULL COMMENT 'Akurasi GPS dalam meter', + `is_primary` tinyint(1) DEFAULT '0' COMMENT '1 = foto utama (thumbnail peta)', + `ukuran_kb` int DEFAULT NULL, + `keterangan` varchar(255) DEFAULT NULL, + `diambil_oleh` int DEFAULT NULL COMMENT 'FK users', + `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; - -- Status BPJS - punya_bpjs TINYINT(1) DEFAULT 0, - jenis_bpjs ENUM('PBI','mandiri','tidak_punya') DEFAULT 'tidak_punya', +-- +-- Dumping data for table `foto_rumah` +-- - -- Relasi ke Rumah Ibadah (kompatibel v1.1) - rumah_ibadah_id INT NULL, - jarak_ke_ibadah DECIMAL(10,2) NULL COMMENT 'Jarak dalam meter', +INSERT INTO `foto_rumah` (`id`, `penduduk_id`, `file_path`, `lat_foto`, `lng_foto`, `accuracy_meter`, `is_primary`, `ukuran_kb`, `keterangan`, `diambil_oleh`, `created_at`) VALUES +(2, 14, 'assets/img/uploads/foto_14_1781095115_a7fa167f.jpeg', NULL, NULL, NULL, 1, 82, 'Foto Utama dari Form Penduduk', 2, '2026-06-10 12:38:35'), +(3, 15, 'assets/img/uploads/foto_15_1781099424_25542d1c.jpg', NULL, NULL, NULL, 1, 37, 'Foto Utama dari Form Penduduk', 1, '2026-06-10 13:50:24'), +(4, 16, 'assets/img/uploads/foto_16_1781099576_96e58d0d.jpeg', NULL, NULL, NULL, 1, 33, 'Foto Utama dari Form Penduduk', 2, '2026-06-10 13:52:56'); - -- Status Verifikasi - status_verifikasi ENUM('belum_diverifikasi','terverifikasi','ditolak') DEFAULT 'belum_diverifikasi', - catatan_verifikasi TEXT NULL, +-- -------------------------------------------------------- - -- Audit Trail - surveyor_id INT NULL COMMENT 'FK users - petugas input', - verified_by INT NULL COMMENT 'FK users - admin verifikator', - verified_at TIMESTAMP NULL, +-- +-- Table structure for table `jenis_bantuan` +-- - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, +CREATE TABLE `jenis_bantuan` ( + `id` int NOT NULL, + `kode` varchar(20) NOT NULL, + `nama` varchar(100) NOT NULL, + `deskripsi` text, + `warna_badge` varchar(7) DEFAULT '#4f8ef7' COMMENT 'Hex color badge', + `aktif` tinyint(1) DEFAULT '1', + `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; - -- Foreign Keys - CONSTRAINT fk_pm_wilayah FOREIGN KEY (wilayah_id) REFERENCES wilayah(id) ON DELETE SET NULL, - CONSTRAINT fk_pm_ibadah FOREIGN KEY (rumah_ibadah_id) REFERENCES rumah_ibadah(id) ON DELETE SET NULL, - CONSTRAINT fk_pm_surveyor FOREIGN KEY (surveyor_id) REFERENCES users(id) ON DELETE SET NULL, - CONSTRAINT fk_pm_verif FOREIGN KEY (verified_by) REFERENCES users(id) ON DELETE SET NULL, +-- +-- Dumping data for table `jenis_bantuan` +-- - INDEX idx_nik (nik_kk), - INDEX idx_lat_lng (lat, lng), - INDEX idx_kategori (kategori_kemiskinan), - INDEX idx_wilayah (wilayah_id), - INDEX idx_status_v (status_verifikasi), - INDEX idx_surveyor (surveyor_id) -); +INSERT INTO `jenis_bantuan` (`id`, `kode`, `nama`, `deskripsi`, `warna_badge`, `aktif`, `created_at`) VALUES +(1, 'PKH', 'Program Keluarga Harapan', 'Bantuan tunai bersyarat untuk KK miskin', '#22c55e', 1, '2026-06-10 12:29:57'), +(2, 'BPNT', 'Bantuan Pangan Non Tunai', 'Sembako via e-warong setiap 2 bulan', '#3b82f6', 1, '2026-06-10 12:29:57'), +(3, 'KIS', 'Kartu Indonesia Sehat', 'Akses layanan kesehatan gratis (BPJS PBI)', '#ec4899', 1, '2026-06-10 12:29:57'), +(4, 'BLT', 'Bantuan Langsung Tunai', 'Bantuan tunai darurat/sementara dari desa/kel', '#f59e0b', 1, '2026-06-10 12:29:57'), +(5, 'BST', 'Bantuan Sosial Tunai', 'Bantuan sosial tunai dari Kemensos', '#8b5cf6', 1, '2026-06-10 12:29:57'), +(6, 'PIP', 'Program Indonesia Pintar', 'Bantuan pendidikan untuk anak sekolah', '#06b6d4', 1, '2026-06-10 12:29:57'); --- ============================================================ --- TABEL 5: foto_rumah --- ============================================================ -CREATE TABLE IF NOT EXISTS foto_rumah ( - id INT AUTO_INCREMENT PRIMARY KEY, - penduduk_id INT NOT NULL, - file_path VARCHAR(500) NOT NULL COMMENT 'Path relatif dari root web', - lat_foto DECIMAL(10,8) NULL COMMENT 'Koordinat GPS saat foto diambil', - lng_foto DECIMAL(11,8) NULL, - accuracy_meter DECIMAL(8,2) NULL COMMENT 'Akurasi GPS dalam meter', - is_primary TINYINT(1) DEFAULT 0 COMMENT '1 = foto utama (thumbnail peta)', - ukuran_kb INT NULL, - keterangan VARCHAR(255) NULL, - diambil_oleh INT NULL COMMENT 'FK users', - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, +-- -------------------------------------------------------- - CONSTRAINT fk_fr_penduduk FOREIGN KEY (penduduk_id) REFERENCES penduduk_miskin(id) ON DELETE CASCADE, - CONSTRAINT fk_fr_user FOREIGN KEY (diambil_oleh) REFERENCES users(id) ON DELETE SET NULL, +-- +-- Table structure for table `notifikasi` +-- - INDEX idx_penduduk (penduduk_id), - INDEX idx_primary (penduduk_id, is_primary) -); +CREATE TABLE `notifikasi` ( + `id` int NOT NULL, + `user_id` int DEFAULT NULL COMMENT 'NULL = broadcast semua admin', + `jenis` enum('belum_bantuan','belum_verifikasi','data_usang','info') DEFAULT 'info', + `judul` varchar(255) NOT NULL, + `pesan` text NOT NULL, + `penduduk_id` int DEFAULT NULL COMMENT 'Referensi penduduk terkait', + `sudah_dibaca` tinyint(1) DEFAULT '0', + `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; --- ============================================================ --- TABEL 6: jenis_bantuan --- ============================================================ -CREATE TABLE IF NOT EXISTS jenis_bantuan ( - id INT AUTO_INCREMENT PRIMARY KEY, - kode VARCHAR(20) NOT NULL UNIQUE, - nama VARCHAR(100) NOT NULL, - deskripsi TEXT NULL, - warna_badge VARCHAR(7) DEFAULT '#4f8ef7' COMMENT 'Hex color badge', - aktif TINYINT(1) DEFAULT 1, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -); +-- +-- Dumping data for table `notifikasi` +-- --- ============================================================ --- TABEL 7: bantuan_penduduk (Many-to-Many pivot) --- ============================================================ -CREATE TABLE IF NOT EXISTS bantuan_penduduk ( - id INT AUTO_INCREMENT PRIMARY KEY, - penduduk_id INT NOT NULL, - bantuan_id INT NOT NULL, - status ENUM('aktif','tidak_aktif','dicabut') DEFAULT 'aktif', - tanggal_mulai DATE NULL, - tanggal_selesai DATE NULL, - nominal_bulanan DECIMAL(12,2) NULL, - nomor_kpj VARCHAR(50) NULL COMMENT 'Nomor kartu/KPJ bantuan', - keterangan TEXT NULL, - diinput_oleh INT NULL COMMENT 'FK users', - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, +INSERT INTO `notifikasi` (`id`, `user_id`, `jenis`, `judul`, `pesan`, `penduduk_id`, `sudah_dibaca`, `created_at`) VALUES +(1, NULL, 'belum_verifikasi', 'Data Menunggu Verifikasi', 'KK Hamid Husin belum diverifikasi.', NULL, 1, '2026-06-10 12:31:00'), +(2, NULL, 'belum_verifikasi', 'Data Menunggu Verifikasi', 'KK Marlina belum diverifikasi.', NULL, 1, '2026-06-10 12:31:00'), +(3, NULL, 'belum_verifikasi', 'Data Menunggu Verifikasi', 'KK Siti Aminah belum diverifikasi.', NULL, 1, '2026-06-10 12:31:00'), +(4, NULL, 'belum_verifikasi', 'Data Menunggu Verifikasi', 'KK bapak 1 belum diverifikasi.', NULL, 1, '2026-06-10 12:31:00'), +(5, NULL, 'belum_verifikasi', 'Data Menunggu Verifikasi', 'KK Bapak 2 belum diverifikasi.', NULL, 1, '2026-06-10 12:31:00'), +(6, NULL, 'belum_bantuan', 'KK Sangat Miskin Tanpa Bantuan', 'KK Marlina berkategori sangat miskin namun belum menerima bantuan apapun.', NULL, 1, '2026-06-10 12:31:00'), +(7, NULL, 'belum_bantuan', 'KK Sangat Miskin Tanpa Bantuan', 'KK Siti Aminah berkategori sangat miskin namun belum menerima bantuan apapun.', NULL, 1, '2026-06-10 12:31:00'), +(8, NULL, 'belum_bantuan', 'KK Sangat Miskin Tanpa Bantuan', 'KK bapak 1 berkategori sangat miskin namun belum menerima bantuan apapun.', NULL, 1, '2026-06-10 12:31:00'), +(9, NULL, 'belum_bantuan', 'KK Sangat Miskin Tanpa Bantuan', 'KK Bapak 2 berkategori sangat miskin namun belum menerima bantuan apapun.', NULL, 1, '2026-06-10 12:31:00'), +(10, NULL, 'belum_verifikasi', 'Data Baru Belum Diverifikasi', 'Data KK Budi (NIK: 6171111111111111) menunggu verifikasi admin.', NULL, 1, '2026-06-10 12:34:54'), +(11, NULL, 'belum_verifikasi', 'Data Baru Belum Diverifikasi', 'Data KK Siti (NIK: 6172222222222222) menunggu verifikasi admin.', 14, 1, '2026-06-10 12:38:35'), +(12, NULL, 'belum_verifikasi', 'Data Baru Belum Diverifikasi', 'Data KK Budi (NIK: 6171111111111111) menunggu verifikasi admin.', 15, 0, '2026-06-10 13:50:24'), +(13, NULL, 'belum_verifikasi', 'Data Baru Belum Diverifikasi', 'Data KK Wahyu (NIK: 6173333333333333) menunggu verifikasi admin.', 16, 0, '2026-06-10 13:52:56'); - CONSTRAINT fk_bp_penduduk FOREIGN KEY (penduduk_id) REFERENCES penduduk_miskin(id) ON DELETE CASCADE, - CONSTRAINT fk_bp_bantuan FOREIGN KEY (bantuan_id) REFERENCES jenis_bantuan(id) ON DELETE RESTRICT, - CONSTRAINT fk_bp_user FOREIGN KEY (diinput_oleh) REFERENCES users(id) ON DELETE SET NULL, +-- -------------------------------------------------------- - UNIQUE KEY uq_penduduk_bantuan (penduduk_id, bantuan_id), - INDEX idx_penduduk (penduduk_id), - INDEX idx_bantuan (bantuan_id), - INDEX idx_status (status) -); +-- +-- Table structure for table `penduduk_miskin` +-- --- ============================================================ --- TABEL 8: riwayat_verifikasi (Audit Trail) --- ============================================================ -CREATE TABLE IF NOT EXISTS riwayat_verifikasi ( - id INT AUTO_INCREMENT PRIMARY KEY, - penduduk_id INT NOT NULL, - user_id INT NOT NULL, - aksi ENUM('submit','verifikasi','tolak','update','hapus') NOT NULL, - catatan TEXT NULL, - data_lama JSON NULL COMMENT 'Snapshot data sebelum perubahan', - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, +CREATE TABLE `penduduk_miskin` ( + `id` int NOT NULL, + `nik_kk` varchar(16) NOT NULL COMMENT 'NIK KK 16 digit', + `nama_kk` varchar(255) NOT NULL COMMENT 'Nama Kepala Keluarga', + `no_hp` varchar(20) DEFAULT NULL COMMENT 'No HP/WhatsApp', + `alamat` text, + `wilayah_id` int DEFAULT NULL, + `rt` varchar(10) DEFAULT NULL, + `rw` varchar(10) DEFAULT NULL, + `lat` decimal(10,8) NOT NULL, + `lng` decimal(11,8) NOT NULL, + `jumlah_anggota` int NOT NULL DEFAULT '1', + `jumlah_anak_sekolah` int NOT NULL DEFAULT '0', + `penghasilan_bulanan` decimal(12,2) DEFAULT NULL COMMENT 'Penghasilan per bulan (Rp)', + `sumber_penghasilan` varchar(255) DEFAULT NULL, + `status_pekerjaan` enum('tidak_bekerja','buruh_harian','petani','nelayan','pedagang','pegawai_swasta','wiraswasta','lainnya') DEFAULT 'tidak_bekerja', + `kategori_kemiskinan` enum('sangat_miskin','miskin','hampir_miskin','mampu') DEFAULT 'sangat_miskin', + `kondisi_rumah` enum('sangat_tidak_layak','tidak_layak','layak') DEFAULT 'tidak_layak', + `kepemilikan_rumah` enum('milik_sendiri','kontrak','menumpang','lainnya') DEFAULT 'milik_sendiri', + `punya_bpjs` tinyint(1) DEFAULT '0', + `jenis_bpjs` enum('PBI','mandiri','tidak_punya') DEFAULT 'tidak_punya', + `rumah_ibadah_id` int DEFAULT NULL, + `jarak_ke_ibadah` decimal(10,2) DEFAULT NULL COMMENT 'Jarak dalam meter', + `status_verifikasi` enum('belum_diverifikasi','terverifikasi','ditolak') DEFAULT 'belum_diverifikasi', + `catatan_verifikasi` text, + `surveyor_id` int DEFAULT NULL COMMENT 'FK users - petugas input', + `verified_by` int DEFAULT NULL COMMENT 'FK users - admin verifikator', + `verified_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; - CONSTRAINT fk_rv_penduduk FOREIGN KEY (penduduk_id) REFERENCES penduduk_miskin(id) ON DELETE CASCADE, - CONSTRAINT fk_rv_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE RESTRICT, +-- +-- Dumping data for table `penduduk_miskin` +-- - INDEX idx_penduduk (penduduk_id), - INDEX idx_user (user_id), - INDEX idx_tanggal (created_at) -); +INSERT INTO `penduduk_miskin` (`id`, `nik_kk`, `nama_kk`, `no_hp`, `alamat`, `wilayah_id`, `rt`, `rw`, `lat`, `lng`, `jumlah_anggota`, `jumlah_anak_sekolah`, `penghasilan_bulanan`, `sumber_penghasilan`, `status_pekerjaan`, `kategori_kemiskinan`, `kondisi_rumah`, `kepemilikan_rumah`, `punya_bpjs`, `jenis_bpjs`, `rumah_ibadah_id`, `jarak_ke_ibadah`, `status_verifikasi`, `catatan_verifikasi`, `surveyor_id`, `verified_by`, `verified_at`, `created_at`, `updated_at`) VALUES +(14, '6172222222222222', 'Siti', '083333333333', 'Jalan M. Syafe\'i, Kel. Bansir Laut, Pontianak, Kalimantan Barat', NULL, '01', '01', -0.06016363, 109.34164524, 3, 1, 4000000.00, 'Buruh Harian', 'buruh_harian', 'hampir_miskin', 'layak', 'kontrak', 1, 'PBI', NULL, NULL, 'terverifikasi', '', 2, 1, '2026-06-10 13:50:53', '2026-06-10 12:38:35', '2026-06-10 13:50:53'), +(15, '6171111111111111', 'Budi', '082222222222', 'Kel. Akcaya, Pontianak, Kalimantan Barat', NULL, '01', '01', -0.04316969, 109.32604551, 5, 3, 10000000.00, 'Berdagang', 'pedagang', 'mampu', 'layak', 'milik_sendiri', 1, 'mandiri', 4, 175.04, 'belum_diverifikasi', NULL, 1, NULL, NULL, '2026-06-10 13:50:24', '2026-06-10 13:50:24'), +(16, '6173333333333333', 'Wahyu', '083333333333', 'Jalan Ahmad Marzuki, Kel. Akcaya, Pontianak, Kalimantan Barat', NULL, '01', '01', -0.03801720, 109.33443546, 4, 2, 5000000.00, 'PNS', 'lainnya', 'mampu', 'layak', 'milik_sendiri', 1, 'PBI', 5, 440.07, 'belum_diverifikasi', NULL, 2, NULL, NULL, '2026-06-10 13:52:56', '2026-06-10 13:52:56'); --- ============================================================ --- TABEL 9: notifikasi --- ============================================================ -CREATE TABLE IF NOT EXISTS notifikasi ( - id INT AUTO_INCREMENT PRIMARY KEY, - user_id INT NULL COMMENT 'NULL = broadcast semua admin', - jenis ENUM('belum_bantuan','belum_verifikasi','data_usang','info') DEFAULT 'info', - judul VARCHAR(255) NOT NULL, - pesan TEXT NOT NULL, - penduduk_id INT NULL COMMENT 'Referensi penduduk terkait', - sudah_dibaca TINYINT(1) DEFAULT 0, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, +-- -------------------------------------------------------- - CONSTRAINT fk_notif_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE, - CONSTRAINT fk_notif_penduduk FOREIGN KEY (penduduk_id) REFERENCES penduduk_miskin(id) ON DELETE SET NULL, +-- +-- Table structure for table `rumah_ibadah` +-- - INDEX idx_user_baca (user_id, sudah_dibaca), - INDEX idx_jenis (jenis) -); +CREATE TABLE `rumah_ibadah` ( + `id` int NOT NULL, + `nama` varchar(255) NOT NULL, + `jenis` enum('masjid','musholla','gereja','pura','vihara','klenteng','lainnya') DEFAULT 'masjid', + `alamat` text, + `pic` varchar(255) DEFAULT NULL COMMENT 'Person In Charge / Penanggung Jawab', + `no_wa` varchar(20) DEFAULT NULL, + `lat` decimal(10,8) NOT NULL, + `lng` decimal(11,8) NOT NULL, + `radius` int DEFAULT '500' COMMENT 'Radius dalam meter', + `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; --- ============================================================ --- INDEX SPASIAL --- ============================================================ -CREATE INDEX idx_ri_lat_lng ON rumah_ibadah(lat, lng); +-- +-- Dumping data for table `rumah_ibadah` +-- -SET FOREIGN_KEY_CHECKS = 1; +INSERT INTO `rumah_ibadah` (`id`, `nama`, `jenis`, `alamat`, `pic`, `no_wa`, `lat`, `lng`, `radius`, `created_at`, `updated_at`) VALUES +(4, 'Gereja Katolik Keluarga Kudus', 'gereja', 'Jalan Sutan Syahrir, Kel. Sungai Bangkong, Pontianak, Kalimantan Barat', 'Romo Yohanes Maria Puji', '081111111111', -0.04325718, 109.32447374, 600, '2026-06-10 12:33:10', '2026-06-10 13:48:54'), +(5, 'Masjid Mujahidin', 'masjid', 'Jalan Mujahidin, Kel. Akcaya, Pontianak, Kalimantan Barat', 'Pak Somad', '083333333333', -0.04147764, 109.33635592, 500, '2026-06-10 13:48:44', '2026-06-10 13:48:44'); --- ============================================================ --- DATA AWAL: users --- ============================================================ -INSERT INTO users (nama, username, password, role) VALUES -('Administrator', 'admin', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'admin'), -('Petugas Survei', 'petugas', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'petugas'), -('Kepala Dinas', 'pimpinan', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'pimpinan'); --- Password semua akun: "password" (bcrypt) +-- -------------------------------------------------------- --- ============================================================ --- DATA AWAL: wilayah --- ============================================================ -INSERT INTO wilayah (kelurahan, kecamatan, kota, rt, rw) VALUES -('Siantan Tengah', 'Pontianak Utara', 'Pontianak', '01', '01'), -('Siantan Tengah', 'Pontianak Utara', 'Pontianak', '02', '01'), -('Siantan Hilir', 'Pontianak Utara', 'Pontianak', '01', '02'), -('Batu Layang', 'Pontianak Utara', 'Pontianak', '01', '01'), -('Batu Layang', 'Pontianak Utara', 'Pontianak', '02', '02'), -('Saigon', 'Pontianak Timur', 'Pontianak', '01', '01'), -('Saigon', 'Pontianak Timur', 'Pontianak', '02', '01'), -('Tanjung Hulu', 'Pontianak Timur', 'Pontianak', '01', '01'), -('Parit Mayor', 'Pontianak Timur', 'Pontianak', '01', '01'), -('Pontianak Kota', 'Pontianak Kota', 'Pontianak', '01', '01'); +-- +-- Table structure for table `users` +-- --- ============================================================ --- DATA AWAL: rumah_ibadah --- ============================================================ -INSERT INTO rumah_ibadah (nama, jenis, alamat, pic, no_wa, lat, lng, radius) VALUES -('Masjid Al-Ikhlas', 'masjid', 'Jl. Merdeka No. 1, Pontianak', 'Ahmad Fauzi', '081234567890', -0.0263303, 109.3425094, 500), -('Masjid Ar-Rahmat', 'masjid', 'Jl. Gajah Mada No. 45, Pontianak', 'Budi Santoso', '082345678901', -0.0320000, 109.3380000, 500), -('Gereja Bethel', 'gereja', 'Jl. Diponegoro No. 12, Pontianak', 'Pendeta Yusuf', '083456789012', -0.0290000, 109.3450000, 500); +CREATE TABLE `users` ( + `id` int NOT NULL, + `nama` varchar(100) NOT NULL, + `username` varchar(50) NOT NULL, + `password` varchar(255) NOT NULL COMMENT 'bcrypt hash', + `role` enum('admin','petugas','pimpinan') NOT NULL DEFAULT 'petugas', + `wilayah_tugas` varchar(100) DEFAULT NULL COMMENT 'Kelurahan/RT wilayah tugas petugas', + `aktif` tinyint(1) DEFAULT '1', + `last_login` timestamp NULL DEFAULT NULL, + `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; --- ============================================================ --- DATA AWAL: jenis_bantuan --- ============================================================ -INSERT INTO jenis_bantuan (kode, nama, deskripsi, warna_badge) VALUES -('PKH', 'Program Keluarga Harapan', 'Bantuan tunai bersyarat untuk KK miskin', '#22c55e'), -('BPNT', 'Bantuan Pangan Non Tunai', 'Sembako via e-warong setiap 2 bulan', '#3b82f6'), -('KIS', 'Kartu Indonesia Sehat', 'Akses layanan kesehatan gratis (BPJS PBI)', '#ec4899'), -('BLT', 'Bantuan Langsung Tunai', 'Bantuan tunai darurat/sementara dari desa/kel', '#f59e0b'), -('BST', 'Bantuan Sosial Tunai', 'Bantuan sosial tunai dari Kemensos', '#8b5cf6'), -('PIP', 'Program Indonesia Pintar', 'Bantuan pendidikan untuk anak sekolah', '#06b6d4'); +-- +-- Dumping data for table `users` +-- --- ============================================================ --- DATA AWAL: penduduk_miskin (contoh) --- ============================================================ -INSERT INTO penduduk_miskin ( - nik_kk, nama_kk, no_hp, alamat, wilayah_id, rt, rw, - lat, lng, jumlah_anggota, jumlah_anak_sekolah, - penghasilan_bulanan, sumber_penghasilan, status_pekerjaan, - kategori_kemiskinan, kondisi_rumah, kepemilikan_rumah, - punya_bpjs, jenis_bpjs, status_verifikasi, surveyor_id -) VALUES -('6171010101010001', 'Suyatno', '081200000001', 'Jl. Merdeka Gg. III No. 5', 1, '01', '01', -0.0270000, 109.3430000, 4, 2, 850000, 'Buruh bangunan', 'buruh_harian', 'miskin', 'tidak_layak', 'menumpang', 1, 'PBI', 'terverifikasi', 1), -('6171010101010002', 'Rohani', '081200000002', 'Jl. Merdeka Gg. IV No. 2', 1, '02', '01', -0.0255000, 109.3420000, 3, 1, 450000, 'Jualan kecil', 'pedagang', 'sangat_miskin', 'sangat_tidak_layak','menumpang', 1, 'PBI', 'terverifikasi', 1), -('6171010101010003', 'Hamid Husin', '081200000003', 'Jl. Gajah Mada Gg. II No. 8', 2, '01', '02', -0.0315000, 109.3375000, 5, 3, 1200000, 'Ojek online', 'buruh_harian', 'mampu', 'tidak_layak', 'kontrak', 0, 'tidak_punya','belum_diverifikasi',2), -('6171010101010004', 'Yanti Susanti', '081200000004', 'Jl. Veteran No. 99', 3, '01', '01', -0.0500000, 109.3600000, 2, 0, 300000, 'Tidak ada', 'tidak_bekerja', 'sangat_miskin', 'sangat_tidak_layak','menumpang', 1, 'PBI', 'terverifikasi', 1), -('6171010101010005', 'Supriyadi', '081200000005', 'Jl. Budi Utomo No. 12', 4, '02', '01', -0.0340000, 109.3510000, 6, 4, 600000, 'Petani kecil', 'petani', 'miskin', 'tidak_layak', 'milik_sendiri', 1, 'PBI', 'terverifikasi', 1), -('6171010101010006', 'Marlina', '081200000006', 'Gg. Damai No. 3', 5, '01', '02', -0.0410000, 109.3480000, 3, 1, 200000, 'Buruh cuci', 'buruh_harian', 'sangat_miskin', 'sangat_tidak_layak','menumpang', 0, 'tidak_punya','belum_diverifikasi',2), -('6171010101010007', 'Junaidi', '081200000007', 'Jl. Khatulistiwa No. 45', 6, '01', '01', -0.0380000, 109.3550000, 4, 2, 950000, 'Nelayan', 'nelayan', 'miskin', 'tidak_layak', 'milik_sendiri', 1, 'mandiri', 'terverifikasi', 1), -('6171010101010008', 'Siti Aminah', '081200000008', 'Gg. Melati No. 7', 7, '02', '02', -0.0290000, 109.3395000, 5, 3, 400000, 'Pembantu RT', 'buruh_harian', 'sangat_miskin', 'sangat_tidak_layak','menumpang', 1, 'PBI', 'belum_diverifikasi',2), -('6171010101010009', 'Rahman', '081200000009', 'Jl. Tanjung Pura No. 88', 8, '01', '01', -0.0220000, 109.3460000, 3, 1, 750000, 'Pedagang kaki lima','pedagang', 'miskin', 'tidak_layak', 'kontrak', 0, 'tidak_punya','terverifikasi', 1), -('6171010101010010', 'Dewi Kartika', '081200000010', 'Gg. Bahagia No. 2', 9, '01', '01', -0.0450000, 109.3530000, 4, 2, 500000, 'Buruh pabrik', 'buruh_harian', 'sangat_miskin', 'tidak_layak', 'kontrak', 1, 'PBI', 'terverifikasi', 1); +INSERT INTO `users` (`id`, `nama`, `username`, `password`, `role`, `wilayah_tugas`, `aktif`, `last_login`, `created_at`, `updated_at`) VALUES +(1, 'Administrator', 'admin', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'admin', NULL, 1, '2026-06-10 15:10:03', '2026-06-10 12:29:57', '2026-06-10 15:10:03'), +(2, 'Petugas Survei', 'petugas', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'petugas', NULL, 1, '2026-06-10 15:12:46', '2026-06-10 12:29:57', '2026-06-10 15:12:46'), +(3, 'Kepala Dinas', 'pimpinan', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'pimpinan', NULL, 1, NULL, '2026-06-10 12:29:57', '2026-06-10 12:29:57'); --- ============================================================ --- DATA AWAL: bantuan_penduduk --- ============================================================ -INSERT INTO bantuan_penduduk (penduduk_id, bantuan_id, status, tanggal_mulai, nominal_bulanan, diinput_oleh) VALUES -(1, 1, 'aktif', '2024-01-01', 500000, 1), -- Suyatno: PKH -(1, 2, 'aktif', '2024-01-01', 200000, 1), -- Suyatno: BPNT -(2, 1, 'aktif', '2023-07-01', 500000, 1), -- Rohani: PKH -(2, 3, 'aktif', '2023-07-01', 0, 1), -- Rohani: KIS -(4, 1, 'aktif', '2024-03-01', 500000, 1), -- Yanti: PKH -(4, 3, 'aktif', '2024-03-01', 0, 1), -- Yanti: KIS -(5, 2, 'aktif', '2024-02-01', 200000, 1), -- Supriyadi: BPNT -(7, 3, 'aktif', '2023-09-01', 0, 1), -- Junaidi: KIS -(9, 2, 'aktif', '2024-01-01', 200000, 1), -- Rahman: BPNT -(10, 1, 'aktif','2024-04-01', 500000, 1), -- Dewi: PKH -(10, 3, 'aktif','2024-04-01', 0, 1); -- Dewi: KIS +-- -------------------------------------------------------- --- ============================================================ --- Update rumah_ibadah assignment (kompatibel v1.1) --- ============================================================ -UPDATE penduduk_miskin pm -SET - rumah_ibadah_id = ( - SELECT ri.id FROM rumah_ibadah ri - WHERE ( - 6371000 * ACOS(GREATEST(-1, LEAST(1, - COS(RADIANS(pm.lat)) * COS(RADIANS(ri.lat)) * - COS(RADIANS(ri.lng) - RADIANS(pm.lng)) + - SIN(RADIANS(pm.lat)) * SIN(RADIANS(ri.lat)) - ))) - ) <= ri.radius - ORDER BY ( - 6371000 * ACOS(GREATEST(-1, LEAST(1, - COS(RADIANS(pm.lat)) * COS(RADIANS(ri.lat)) * - COS(RADIANS(ri.lng) - RADIANS(pm.lng)) + - SIN(RADIANS(pm.lat)) * SIN(RADIANS(ri.lat)) - ))) - ) ASC - LIMIT 1 - ), - jarak_ke_ibadah = ( - SELECT ROUND( - 6371000 * ACOS(GREATEST(-1, LEAST(1, - COS(RADIANS(pm.lat)) * COS(RADIANS(ri.lat)) * - COS(RADIANS(ri.lng) - RADIANS(pm.lng)) + - SIN(RADIANS(pm.lat)) * SIN(RADIANS(ri.lat)) - ))), 2 - ) FROM rumah_ibadah ri - WHERE ( - 6371000 * ACOS(GREATEST(-1, LEAST(1, - COS(RADIANS(pm.lat)) * COS(RADIANS(ri.lat)) * - COS(RADIANS(ri.lng) - RADIANS(pm.lng)) + - SIN(RADIANS(pm.lat)) * SIN(RADIANS(ri.lat)) - ))) - ) <= ri.radius - LIMIT 1 - ); +-- +-- Table structure for table `wilayah` +-- + +CREATE TABLE `wilayah` ( + `id` int NOT NULL, + `kelurahan` varchar(100) NOT NULL, + `kecamatan` varchar(100) NOT NULL, + `kota` varchar(100) NOT NULL DEFAULT 'Pontianak', + `rt` varchar(10) DEFAULT NULL, + `rw` varchar(10) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; + +-- +-- Dumping data for table `wilayah` +-- + +INSERT INTO `wilayah` (`id`, `kelurahan`, `kecamatan`, `kota`, `rt`, `rw`, `created_at`) VALUES +(1, 'Siantan Tengah', 'Pontianak Utara', 'Pontianak', '01', '01', '2026-06-10 12:29:57'), +(2, 'Siantan Tengah', 'Pontianak Utara', 'Pontianak', '02', '01', '2026-06-10 12:29:57'), +(3, 'Siantan Hilir', 'Pontianak Utara', 'Pontianak', '01', '02', '2026-06-10 12:29:57'), +(4, 'Batu Layang', 'Pontianak Utara', 'Pontianak', '01', '01', '2026-06-10 12:29:57'), +(5, 'Batu Layang', 'Pontianak Utara', 'Pontianak', '02', '02', '2026-06-10 12:29:57'), +(6, 'Saigon', 'Pontianak Timur', 'Pontianak', '01', '01', '2026-06-10 12:29:57'), +(7, 'Saigon', 'Pontianak Timur', 'Pontianak', '02', '01', '2026-06-10 12:29:57'), +(8, 'Tanjung Hulu', 'Pontianak Timur', 'Pontianak', '01', '01', '2026-06-10 12:29:57'), +(9, 'Parit Mayor', 'Pontianak Timur', 'Pontianak', '01', '01', '2026-06-10 12:29:57'), +(10, 'Pontianak Kota', 'Pontianak Kota', 'Pontianak', '01', '01', '2026-06-10 12:29:57'); + +-- +-- Indexes for dumped tables +-- + +-- +-- Indexes for table `bantuan_penduduk` +-- +ALTER TABLE `bantuan_penduduk` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `uq_penduduk_bantuan` (`penduduk_id`,`bantuan_id`), + ADD KEY `fk_bp_user` (`diinput_oleh`), + ADD KEY `idx_penduduk` (`penduduk_id`), + ADD KEY `idx_bantuan` (`bantuan_id`), + ADD KEY `idx_status` (`status`); + +-- +-- Indexes for table `foto_rumah` +-- +ALTER TABLE `foto_rumah` + ADD PRIMARY KEY (`id`), + ADD KEY `fk_fr_user` (`diambil_oleh`), + ADD KEY `idx_penduduk` (`penduduk_id`), + ADD KEY `idx_primary` (`penduduk_id`,`is_primary`); + +-- +-- Indexes for table `jenis_bantuan` +-- +ALTER TABLE `jenis_bantuan` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `kode` (`kode`); + +-- +-- Indexes for table `notifikasi` +-- +ALTER TABLE `notifikasi` + ADD PRIMARY KEY (`id`), + ADD KEY `fk_notif_penduduk` (`penduduk_id`), + ADD KEY `idx_user_baca` (`user_id`,`sudah_dibaca`), + ADD KEY `idx_jenis` (`jenis`); + +-- +-- Indexes for table `penduduk_miskin` +-- +ALTER TABLE `penduduk_miskin` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `nik_kk` (`nik_kk`), + ADD KEY `fk_pm_ibadah` (`rumah_ibadah_id`), + ADD KEY `fk_pm_verif` (`verified_by`), + ADD KEY `idx_nik` (`nik_kk`), + ADD KEY `idx_lat_lng` (`lat`,`lng`), + ADD KEY `idx_kategori` (`kategori_kemiskinan`), + ADD KEY `idx_wilayah` (`wilayah_id`), + ADD KEY `idx_status_v` (`status_verifikasi`), + ADD KEY `idx_surveyor` (`surveyor_id`); + +-- +-- Indexes for table `rumah_ibadah` +-- +ALTER TABLE `rumah_ibadah` + ADD PRIMARY KEY (`id`), + ADD KEY `idx_ri_lat_lng` (`lat`,`lng`); + +-- +-- Indexes for table `users` +-- +ALTER TABLE `users` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `username` (`username`), + ADD KEY `idx_username` (`username`), + ADD KEY `idx_role` (`role`); + +-- +-- Indexes for table `wilayah` +-- +ALTER TABLE `wilayah` + ADD PRIMARY KEY (`id`), + ADD KEY `idx_kelurahan` (`kelurahan`), + ADD KEY `idx_kecamatan` (`kecamatan`); + +-- +-- AUTO_INCREMENT for dumped tables +-- + +-- +-- AUTO_INCREMENT for table `bantuan_penduduk` +-- +ALTER TABLE `bantuan_penduduk` + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15; + +-- +-- AUTO_INCREMENT for table `foto_rumah` +-- +ALTER TABLE `foto_rumah` + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; + +-- +-- AUTO_INCREMENT for table `jenis_bantuan` +-- +ALTER TABLE `jenis_bantuan` + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- AUTO_INCREMENT for table `notifikasi` +-- +ALTER TABLE `notifikasi` + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=14; + +-- +-- AUTO_INCREMENT for table `penduduk_miskin` +-- +ALTER TABLE `penduduk_miskin` + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=17; + +-- +-- AUTO_INCREMENT for table `rumah_ibadah` +-- +ALTER TABLE `rumah_ibadah` + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; + +-- +-- AUTO_INCREMENT for table `users` +-- +ALTER TABLE `users` + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; + +-- +-- AUTO_INCREMENT for table `wilayah` +-- +ALTER TABLE `wilayah` + MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11; + +-- +-- Constraints for dumped tables +-- + +-- +-- Constraints for table `bantuan_penduduk` +-- +ALTER TABLE `bantuan_penduduk` + ADD CONSTRAINT `fk_bp_bantuan` FOREIGN KEY (`bantuan_id`) REFERENCES `jenis_bantuan` (`id`) ON DELETE RESTRICT, + ADD CONSTRAINT `fk_bp_penduduk` FOREIGN KEY (`penduduk_id`) REFERENCES `penduduk_miskin` (`id`) ON DELETE CASCADE, + ADD CONSTRAINT `fk_bp_user` FOREIGN KEY (`diinput_oleh`) REFERENCES `users` (`id`) ON DELETE SET NULL; + +-- +-- Constraints for table `foto_rumah` +-- +ALTER TABLE `foto_rumah` + ADD CONSTRAINT `fk_fr_penduduk` FOREIGN KEY (`penduduk_id`) REFERENCES `penduduk_miskin` (`id`) ON DELETE CASCADE, + ADD CONSTRAINT `fk_fr_user` FOREIGN KEY (`diambil_oleh`) REFERENCES `users` (`id`) ON DELETE SET NULL; + +-- +-- Constraints for table `notifikasi` +-- +ALTER TABLE `notifikasi` + ADD CONSTRAINT `fk_notif_penduduk` FOREIGN KEY (`penduduk_id`) REFERENCES `penduduk_miskin` (`id`) ON DELETE SET NULL, + ADD CONSTRAINT `fk_notif_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE; + +-- +-- Constraints for table `penduduk_miskin` +-- +ALTER TABLE `penduduk_miskin` + ADD CONSTRAINT `fk_pm_ibadah` FOREIGN KEY (`rumah_ibadah_id`) REFERENCES `rumah_ibadah` (`id`) ON DELETE SET NULL, + ADD CONSTRAINT `fk_pm_surveyor` FOREIGN KEY (`surveyor_id`) REFERENCES `users` (`id`) ON DELETE SET NULL, + ADD CONSTRAINT `fk_pm_verif` FOREIGN KEY (`verified_by`) REFERENCES `users` (`id`) ON DELETE SET NULL, + ADD CONSTRAINT `fk_pm_wilayah` FOREIGN KEY (`wilayah_id`) REFERENCES `wilayah` (`id`) ON DELETE SET NULL; +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;