sipd-master/migrations/000005_create_mst_kelurahan_table.up.sql
2025-09-16 08:26:35 +07:00

39 lines
3.1 KiB
SQL

CREATE TABLE public.mst_kelurahan (
id_kelurahan serial NOT NULL,
id_daerah integer DEFAULT 0 NOT NULL,
id_kecamatan integer DEFAULT 0 NOT NULL,
id_unik_kelurahan uuid DEFAULT public.uuid_generate_v7() NOT NULL,
id_unik_daerah uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
id_unik_kecamatan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
status_desa boolean DEFAULT false NOT NULL,
kode_kelurahan character varying(25) NOT NULL,
nama_kelurahan character varying(255) DEFAULT ''::character varying NOT NULL,
created_at timestamp(6) without time zone DEFAULT now() NOT NULL,
created_by integer DEFAULT 0 NOT NULL,
updated_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
updated_by integer DEFAULT 0 NOT NULL,
deleted_at timestamp(6) without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL,
deleted_by integer DEFAULT 0 NOT NULL
);
COMMENT ON TABLE public.mst_kelurahan IS 'Tabel referensi kelurahan/desa di Indonesia dalam sistem SIPD. Menyimpan identitas kelurahan, kode wilayah, serta relasinya dengan kecamatan dan daerah induk.';
COMMENT ON COLUMN public.mst_kelurahan.id_kelurahan IS 'Primary key. ID unik untuk setiap kelurahan/desa.';
COMMENT ON COLUMN public.mst_kelurahan.id_daerah IS 'ID daerah induk (provinsi/kabupaten/kota) tempat kelurahan berada.';
COMMENT ON COLUMN public.mst_kelurahan.id_kecamatan IS 'ID kecamatan induk tempat kelurahan berada.';
COMMENT ON COLUMN public.mst_kelurahan.id_unik_kelurahan IS 'ID unik UUID untuk backup ID primary key.';
COMMENT ON COLUMN public.mst_kelurahan.id_unik_daerah IS 'ID unik UUID untuk backup ID foreign key mst_daerah.';
COMMENT ON COLUMN public.mst_kelurahan.id_unik_kecamatan IS 'ID unik UUID untuk backup ID foreign key mst_kecamatan.';
COMMENT ON COLUMN public.mst_kelurahan.status_desa IS 'Penanda data apakah termasuk desa atau tidak. Jika Desa Nilai = TRUE';
COMMENT ON COLUMN public.mst_kelurahan.kode_kelurahan IS 'Kode resmi kelurahan/desa sesuai standar nasional.';
COMMENT ON COLUMN public.mst_kelurahan.nama_kelurahan IS 'Nama lengkap kelurahan/desa sesuai nomenklatur resmi.';
COMMENT ON COLUMN public.mst_kelurahan.created_at IS 'Tanggal dan waktu pertama kali data dibuat.';
COMMENT ON COLUMN public.mst_kelurahan.created_by IS 'ID pengguna yang pertama kali membuat data.';
COMMENT ON COLUMN public.mst_kelurahan.updated_at IS 'Tanggal dan waktu terakhir kali data diperbarui.';
COMMENT ON COLUMN public.mst_kelurahan.updated_by IS 'ID pengguna yang terakhir kali memperbarui data.';
COMMENT ON COLUMN public.mst_kelurahan.deleted_at IS 'Tanggal dan waktu data dihapus (soft delete).';
COMMENT ON COLUMN public.mst_kelurahan.deleted_by IS 'ID pengguna yang menghapus data.';
ALTER TABLE public.mst_kelurahan ADD CONSTRAINT mst_kelurahan_pkey PRIMARY KEY (id_kelurahan, id_kecamatan, id_daerah, kode_kelurahan);
CREATE INDEX mst_kelurahan_id_kelurahan_idx ON public.mst_kelurahan USING btree (id_kelurahan);
CREATE INDEX mst_kelurahan_kode_kelurahan_idx ON public.mst_kelurahan USING btree (kode_kelurahan);