First commit
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
-- =========================================================
|
||||
-- WebGIS - Struktur Database
|
||||
-- Tugas: Manajemen Data Jalan & Parsil Tanah (Kavling)
|
||||
-- Database: WEB_GIS
|
||||
-- Tipe Geometri: GeoJSON (LineString & Polygon)
|
||||
-- =========================================================
|
||||
|
||||
CREATE DATABASE IF NOT EXISTS WEB_GIS
|
||||
CHARACTER SET utf8mb4
|
||||
COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
USE WEB_GIS;
|
||||
|
||||
-- ---------------------------------------------------------
|
||||
-- TABEL 1: Manajemen Data Jalan
|
||||
-- Tipe Geometri : GeoJSON LineString
|
||||
-- Panjang Jalan : Dihitung otomatis oleh LeafletJS (meter)
|
||||
-- ---------------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `tb_jalan` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT COMMENT 'Primary key jalan',
|
||||
`nama_jalan` VARCHAR(100) NOT NULL COMMENT 'Nama ruas jalan',
|
||||
`status_jalan` ENUM(
|
||||
'Nasional',
|
||||
'Provinsi',
|
||||
'Kabupaten'
|
||||
) NOT NULL COMMENT 'Status administrasi jalan',
|
||||
`panjang_jalan` DECIMAL(12,2) NOT NULL DEFAULT '0.00' COMMENT 'Panjang jalan dalam meter (dihitung otomatis LeafletJS via L.LatLng.distanceTo)',
|
||||
`geojson` JSON NOT NULL COMMENT 'Koordinat geometri dalam format GeoJSON LineString',
|
||||
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB
|
||||
DEFAULT CHARSET=utf8mb4
|
||||
COLLATE=utf8mb4_unicode_ci
|
||||
COMMENT='Tabel manajemen data jalan berdasarkan status administrasi. Geometri disimpan sebagai GeoJSON LineString.';
|
||||
|
||||
|
||||
-- ---------------------------------------------------------
|
||||
-- TABEL 2: Manajemen Parsil Tanah / Kavling
|
||||
-- Tipe Geometri : GeoJSON Polygon
|
||||
-- Luas Tanah : Dihitung otomatis oleh LeafletJS (m²)
|
||||
-- ---------------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `tb_parsil` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT COMMENT 'Primary key parsil',
|
||||
`nama_parsil` VARCHAR(100) NOT NULL COMMENT 'Nama atau nomor identifikasi parsil tanah',
|
||||
`status_kepemilikan` ENUM(
|
||||
'SHM',
|
||||
'HGB',
|
||||
'HGU',
|
||||
'HP'
|
||||
) NOT NULL COMMENT 'Status sertifikat kepemilikan: SHM=Sertifikat Hak Milik, HGB=Hak Guna Bangunan, HGU=Hak Guna Usaha, HP=Hak Pakai',
|
||||
`luas_tanah` DECIMAL(16,4) NOT NULL DEFAULT '0.0000' COMMENT 'Luas tanah dalam meter persegi (dihitung otomatis LeafletJS via formula geodesic spherical)',
|
||||
`geojson` JSON NOT NULL COMMENT 'Koordinat geometri dalam format GeoJSON Polygon',
|
||||
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB
|
||||
DEFAULT CHARSET=utf8mb4
|
||||
COLLATE=utf8mb4_unicode_ci
|
||||
COMMENT='Tabel manajemen parsil/kavling tanah berdasarkan status kepemilikan. Geometri disimpan sebagai GeoJSON Polygon.';
|
||||
|
||||
|
||||
-- ---------------------------------------------------------
|
||||
-- Contoh Indeks untuk performa query filter
|
||||
-- ---------------------------------------------------------
|
||||
ALTER TABLE `tb_jalan` ADD INDEX `idx_status_jalan` (`status_jalan`);
|
||||
ALTER TABLE `tb_parsil` ADD INDEX `idx_status_parsil` (`status_kepemilikan`);
|
||||
Reference in New Issue
Block a user