64 lines
3.1 KiB
SQL
64 lines
3.1 KiB
SQL
-- ============================================
|
|
-- DATABASE: gis_penduduk_miskin
|
|
-- GIS Web App - Rumah Ibadah & Penduduk Miskin
|
|
-- ============================================
|
|
|
|
CREATE DATABASE IF NOT EXISTS gis_penduduk_miskin CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
USE gis_penduduk_miskin;
|
|
|
|
-- Tabel Rumah Ibadah
|
|
CREATE TABLE IF NOT EXISTS rumah_ibadah (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
nama VARCHAR(200) NOT NULL,
|
|
jenis ENUM('Masjid','Gereja','Pura','Vihara','Kelenteng','Lainnya') DEFAULT 'Masjid',
|
|
alamat TEXT,
|
|
pic VARCHAR(150) COMMENT 'Person In Charge',
|
|
no_wa VARCHAR(20),
|
|
lat DOUBLE NOT NULL,
|
|
lng DOUBLE 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 Penduduk Miskin
|
|
CREATE TABLE IF NOT EXISTS penduduk_miskin (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
nama_kk VARCHAR(200) NOT NULL COMMENT 'Nama Kepala Keluarga',
|
|
jumlah_anggota INT NOT NULL DEFAULT 1 COMMENT 'Jumlah Anggota KK',
|
|
alamat TEXT,
|
|
lat DOUBLE NOT NULL,
|
|
lng DOUBLE NOT NULL,
|
|
rumah_ibadah_id INT NULL COMMENT 'Rumah ibadah terdekat (FK)',
|
|
jarak_ke_ibadah DOUBLE NULL COMMENT 'Jarak dalam meter ke rumah ibadah terdekat',
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (rumah_ibadah_id) REFERENCES rumah_ibadah(id) ON DELETE SET NULL
|
|
);
|
|
|
|
-- Index untuk performa query geospasial
|
|
CREATE INDEX idx_rumah_ibadah_coords ON rumah_ibadah(lat, lng);
|
|
CREATE INDEX idx_penduduk_coords ON penduduk_miskin(lat, lng);
|
|
CREATE INDEX idx_penduduk_ibadah ON penduduk_miskin(rumah_ibadah_id);
|
|
|
|
-- =====================
|
|
-- DATA CONTOH (Pontianak)
|
|
-- =====================
|
|
|
|
INSERT INTO rumah_ibadah (nama, jenis, alamat, pic, no_wa, lat, lng, radius) VALUES
|
|
('Masjid Raya Mujahidin', 'Masjid', 'Jl. Ahmad Yani, Pontianak Selatan', 'H. Abdurrahman', '081234567890', -0.0397, 109.3319, 500),
|
|
('Masjid Jami Pontianak', 'Masjid', 'Jl. Tanjungpura, Pontianak Kota', 'H. Mukhlis', '081234567891', -0.0263, 109.3413, 500),
|
|
('GBI Pontianak', 'Gereja', 'Jl. Gajahmada, Pontianak Kota', 'Pdt. Stevanus', '081234567892', -0.0280, 109.3350, 500),
|
|
('Vihara Bodhisattva Karaniya Metta', 'Vihara', 'Jl. Khatulistiwa, Pontianak Utara', 'Bhikkhu Santoso', '081234567893', -0.0120, 109.3250, 500);
|
|
|
|
INSERT INTO penduduk_miskin (nama_kk, jumlah_anggota, alamat, lat, lng) VALUES
|
|
('Budi Santoso', 4, 'Jl. Ahmad Yani Gg. 3, Pontianak', -0.0410, 109.3330),
|
|
('Siti Rahayu', 3, 'Jl. Ahmad Yani Gg. 5, Pontianak', -0.0380, 109.3310),
|
|
('Muhammad Amin', 5, 'Jl. Tanjungpura No. 12, Pontianak', -0.0255, 109.3420),
|
|
('Dewi Lestari', 2, 'Jl. Gajahmada No. 7, Pontianak', -0.0290, 109.3360),
|
|
('Hendra Kusuma', 6, 'Jl. Khatulistiwa Gg. 2, Pontianak', -0.0130, 109.3260),
|
|
('Yanti Wulandari', 3, 'Jl. Reformasi, Pontianak Utara', -0.0100, 109.3240),
|
|
('Agus Prasetyo', 4, 'Jl. Sultan Hamid, Pontianak Barat', -0.0450, 109.3200);
|
|
|
|
-- Update rumah_ibadah_id dan jarak untuk data contoh (akan dihitung via PHP)
|