58 lines
4.5 KiB
SQL
58 lines
4.5 KiB
SQL
CREATE TABLE public.mst_kegiatan (
|
|
id_kegiatan serial NOT NULL,
|
|
tahun integer DEFAULT 0 NOT NULL,
|
|
id_urusan integer DEFAULT 0 NOT NULL,
|
|
id_bidang_urusan integer DEFAULT 0 NOT NULL,
|
|
id_program integer DEFAULT 0 NOT NULL,
|
|
id_unik_kegiatan uuid DEFAULT public.uuid_generate_v7() NOT NULL,
|
|
id_unik_urusan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
|
|
id_unik_bidang_urusan uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
|
|
id_unik_program uuid DEFAULT '00000000-0000-0000-0000-000000000000' NOT NULL,
|
|
locked boolean DEFAULT false NOT NULL,
|
|
disable boolean DEFAULT false NOT NULL,
|
|
jns_pemda integer[] DEFAULT ARRAY[0] NOT NULL,
|
|
daerah_khusus integer[] DEFAULT ARRAY[0] NOT NULL,
|
|
kode_kegiatan character varying(25) NOT NULL,
|
|
nama_kegiatan text DEFAULT ''::text NOT NULL,
|
|
hist_data jsonb DEFAULT '[]'::jsonb 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_kegiatan IS 'Tabel referensi Kegiatan yang memuat kode, nama, dan informasi pengelompokan kegiatan sesuai struktur perencanaan daerah. Kegiatan berada di bawah Program dan menjadi induk Sub Kegiatan.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.id_kegiatan IS 'Primary key. ID unik untuk setiap kegiatan.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.tahun IS 'Tahun anggaran berlakunya kegiatan.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.id_urusan IS 'ID urusan yang menaungi kegiatan ini.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.id_bidang_urusan IS 'ID bidang urusan yang menaungi kegiatan ini.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.id_program IS 'ID program induk dari kegiatan ini.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.id_unik_kegiatan IS 'ID unik UUID untuk backup ID primary key.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.id_unik_urusan IS 'ID unik UUID untuk backup ID foreign key mst_urusan.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.id_unik_bidang_urusan IS 'ID unik UUID untuk backup ID foreign key mst_bidang_urusan.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.id_unik_program IS 'ID unik UUID untuk backup ID foreign key mst_program.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.locked IS 'Status kunci data. TRUE berarti kegiatan terkunci dan tidak dapat diubah.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.disable IS 'Status nonaktif. TRUE berarti kegiatan tidak digunakan.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.jns_pemda IS 'Daftar jenis pemerintah daerah dalam bentuk array (1=Provinsi, 2=Kabupaten, 3=Kota).';
|
|
COMMENT ON COLUMN public.mst_kegiatan.daerah_khusus IS 'Daftar ID daerah khusus dalam bentuk array (440=Papua, 528=Papua Barat).';
|
|
COMMENT ON COLUMN public.mst_kegiatan.kode_kegiatan IS 'Kode kegiatan sesuai struktur perencanaan daerah.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.nama_kegiatan IS 'Nama kegiatan.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.hist_data IS 'Riwayat perubahan data dalam format JSONB.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.created_at IS 'Tanggal dan waktu data dibuat.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.created_by IS 'ID pengguna yang membuat data.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.updated_at IS 'Tanggal dan waktu terakhir data diperbarui.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.updated_by IS 'ID pengguna yang memperbarui data.';
|
|
COMMENT ON COLUMN public.mst_kegiatan.deleted_at IS 'Tanggal dan waktu data dihapus (soft delete).';
|
|
COMMENT ON COLUMN public.mst_kegiatan.deleted_by IS 'ID pengguna yang menghapus data.';
|
|
|
|
ALTER TABLE public.mst_kegiatan ADD CONSTRAINT mst_kegiatan_pkey PRIMARY KEY (id_kegiatan, tahun);
|
|
ALTER TABLE public.mst_kegiatan ADD CONSTRAINT mst_kegiatan_unique_key UNIQUE (id_kegiatan, tahun, id_urusan, id_bidang_urusan, id_program, kode_kegiatan);
|
|
|
|
CREATE INDEX mst_kegiatan_id_kegiatan_idx ON public.mst_kegiatan USING btree (id_kegiatan);
|
|
CREATE INDEX mst_kegiatan_tahun_idx ON public.mst_kegiatan USING btree (tahun);
|
|
CREATE INDEX mst_kegiatan_id_urusan_idx ON public.mst_kegiatan USING btree (id_urusan);
|
|
CREATE INDEX mst_kegiatan_id_bidang_urusan_idx ON public.mst_kegiatan USING btree (id_bidang_urusan);
|
|
CREATE INDEX mst_kegiatan_id_program_idx ON public.mst_kegiatan USING btree (id_program);
|
|
CREATE INDEX mst_kegiatan_kode_kegiatan_idx ON public.mst_kegiatan USING btree (kode_kegiatan); |