-- ## iitp DB Schemas - Initial setup - Creation and Delete if tables exists 
-- ## ver 0.1.11 last updated data : 2025.10.17
-- ## Only for PostgreSQL
-- ## 기초 데이터용 테이블 생성 스크립트 ( 제외 : "mv_poi" table )
-- ## Designing a Custom Database Schema for KOSIS OpenAPI Integration (KOSIS OpenAPI 연동 맞춤으로 DB DDL 설계)


-- ################################################
-- ## 고아 시퀀스 삭제 (더 이상 어떤 테이블 컬럼에도 연결되지 않은 시퀀스) 
-- ################################################

DO $$
DECLARE
    orphan_seq RECORD;
BEGIN
    FOR orphan_seq IN
        SELECT n.nspname AS schema_name,
               c.relname AS sequence_name
        FROM pg_class c
        JOIN pg_namespace n ON n.oid = c.relnamespace
        WHERE c.relkind = 'S' -- 시퀀스만
          AND NOT EXISTS (
              -- 직접적으로 OWNED BY 컬럼과 연결된 시퀀스는 제외
              SELECT 1
              FROM pg_depend d
              JOIN pg_attribute a ON d.refobjid = a.attrelid AND d.refobjsubid = a.attnum
              WHERE d.objid = c.oid
                AND d.classid = 'pg_class'::regclass
                AND d.refclassid = 'pg_class'::regclass
                AND (d.deptype = 'a' OR d.deptype = 'i')  -- 'a' 자동 의존성, 'i' 내부 의존성 포함
          )
          AND NOT EXISTS (
              -- identity 컬럼이 사용하는 시퀀스 제외
              SELECT 1
              FROM pg_attribute a
              JOIN pg_class t ON t.oid = a.attrelid
              WHERE a.attidentity IN ('a','d') -- 'a' = always identity, 'd' = default identity
                AND t.relkind = 'r'
                AND (SELECT pg_get_serial_sequence(t.relname, a.attname)) = n.nspname || '.' || c.relname
          )
    LOOP
        RAISE NOTICE '고아 시퀀스 발견: %.% - 삭제합니다.', orphan_seq.schema_name, orphan_seq.sequence_name;
        EXECUTE format('DROP SEQUENCE IF EXISTS %I.%I', orphan_seq.schema_name, orphan_seq.sequence_name);
    END LOOP;
END
$$;



-- ################################################
-- ## 시스템 테이블 생성 
-- ################################################


-- #### 시스템 공통 코드 테이블 ####
-- # public.sys_common_code definition

-- Drop table

DROP TABLE IF EXISTS public.sys_common_code;

CREATE TABLE public.sys_common_code (
	grp_id varchar(44) NOT NULL, -- 코드 그룹 ID (예: GENDER, REGION)
	grp_nm varchar(80) NOT NULL, -- 코드 그룹 이름 (예: 성별, 지역)
	code_id varchar(36) NOT NULL, -- 코드 ID (예: M, F, 1000)
	code_nm varchar(64) NOT NULL, -- 코드 이름 (예: 남성, 여성, 컴퓨터)
	
	parent_grp_id varchar(40) NULL, -- 상위 그룹 ID (optional)
	parent_code_id varchar(40) NULL, -- 상위 코드 ID (optional) (동일 그룹 내 계층형 코드 구조)
	
	code_type bpchar(1) NOT NULL, -- 코드 타입 코드 타입: B(서비스용), A(관리자서비스용) S(시스템용)
	code_lvl int4 DEFAULT 1 NULL, -- 코드 계층 레벨
	sort_order int2 DEFAULT 0 NULL, -- 정렬 순서 (UI 정렬 등에 사용)
	use_yn bpchar(1) DEFAULT 'Y'::bpchar NULL, -- 사용 여부 (Y: 사용, N: 미사용)
	del_yn bpchar(1) DEFAULT 'N'::bpchar NULL, -- 삭제 여부: N(정상), Y(삭제)
	code_des varchar(255) NULL, -- 코드 설명
	memo varchar(255) NULL, -- 메모: 버전정등 기타 기록 정보
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 생성 시각 (UTC)
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 수정 시각 (UTC)
	deleted_at timestamptz NULL, -- 삭제 일시 (논리 삭제 시 기록)
	created_by varchar(40) NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조
	updated_by varchar(40) NULL, -- 수정자 ID
	deleted_by varchar(40) NULL, -- 삭제 처리자 ID 또는 시스템
	CONSTRAINT pkey_sys_common_code PRIMARY KEY (grp_id, code_id)
);
CREATE INDEX idx_sys_common_code_grp_parent ON public.sys_common_code USING btree (grp_id, parent_code_id);
CREATE INDEX idx_sys_common_code_type_grp_sort ON public.sys_common_code USING btree (code_type, grp_id, code_lvl, sort_order);
COMMENT ON TABLE public.sys_common_code IS '시스템 공통 코드 테이블';

-- Column comments

COMMENT ON COLUMN public.sys_common_code.grp_id IS '코드 그룹 ID (예: GENDER, REGION)';
COMMENT ON COLUMN public.sys_common_code.grp_nm IS '코드 그룹 이름 (예: 성별, 지역)';
COMMENT ON COLUMN public.sys_common_code.parent_grp_id IS '상위 그룹 ID (optional)';
COMMENT ON COLUMN public.sys_common_code.code_id IS '코드 ID (예: M, F, 1000)';
COMMENT ON COLUMN public.sys_common_code.parent_code_id IS '상위 코드 ID (optional) (동일 그룹 내 계층형 코드 구조)';
COMMENT ON COLUMN public.sys_common_code.code_nm IS '코드 이름 (예: 남성, 여성, 컴퓨터)';
COMMENT ON COLUMN public.sys_common_code.code_type IS '코드 타입 코드 타입: B(서비스용), A(관리자서비스용) S(시스템용)';
COMMENT ON COLUMN public.sys_common_code.code_lvl IS '코드 계층 레벨';
COMMENT ON COLUMN public.sys_common_code.sort_order IS '정렬 순서 (UI 정렬 등에 사용)';
COMMENT ON COLUMN public.sys_common_code.use_yn IS '사용 여부 (Y: 사용, N: 미사용)';
COMMENT ON COLUMN public.sys_common_code.del_yn IS '삭제 여부: N(정상), Y(삭제)';
COMMENT ON COLUMN public.sys_common_code.code_des IS '코드 설명';
COMMENT ON COLUMN public.sys_common_code.memo IS '메모: 버전정등 기타 기록 정보';
COMMENT ON COLUMN public.sys_common_code.created_at IS '생성 시각 (UTC)';
COMMENT ON COLUMN public.sys_common_code.updated_at IS '수정 시각 (UTC)';
COMMENT ON COLUMN public.sys_common_code.deleted_at IS '삭제 일시 (논리 삭제 시 기록)';
COMMENT ON COLUMN public.sys_common_code.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.sys_common_code.updated_by IS '수정자 ID';
COMMENT ON COLUMN public.sys_common_code.deleted_by IS '삭제 처리자 ID 또는 시스템';



-- #### SYS-외부 연동 OPENAPI 정보 테이블 (IITP-> 외부 Sys) ####
-- # public.sys_ext_api_info definition

-- Drop table if table exists
DROP TABLE IF EXISTS public.sys_ext_api_info;

-- Create table
CREATE TABLE public.sys_ext_api_info (
	ext_api_id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	if_name varchar(60) NOT NULL, -- 연동 이름
	ext_sys varchar(20) NOT NULL, -- 연동 시스템 Code , "ext_sys_code" comm code 참조
	ext_url varchar(300) NOT NULL, -- 연동 기본 url
	auth varchar(200) NULL, --  연동 인증키 
	data_format varchar(20) NULL, -- 데이타 형식 Array형태, "data_format" common code ( 예: JSON, XML 등)
	latest_sync_time timestamptz NULL, -- 최근 데이터 수집 시간
	memo varchar(100) NULL,
	status bpchar(1) DEFAULT 'A'::bpchar NOT NULL, -- 상태 : "data_status" comm code (예:P/R/A/I/D)
	del_yn bpchar(1) DEFAULT 'N'::bpchar NOT NULL, -- 삭제여부 (Y: 삭제)
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	deleted_at timestamptz NULL, -- 삭제 일시 (논리 삭제 시 기록)
	created_by varchar(40) NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조
	updated_by varchar(40) NULL, -- 데이터 수정자
	deleted_by varchar(40) NULL, -- 데이터 삭제자
	CONSTRAINT pkey_sys_ext_api_info PRIMARY KEY (ext_api_id)
);
CREATE UNIQUE INDEX uidx_sys_ext_api_info_if_name ON public.sys_ext_api_info USING btree (if_name);
CREATE INDEX idx_sys_ext_api_info_ext ON public.sys_ext_api_info USING btree (ext_sys);
COMMENT ON TABLE public.sys_ext_api_info IS 'SYS-외부 연동 open api  정보 테이블 (IITP-> 외부 Sys) ';

-- Column comments

COMMENT ON COLUMN public.sys_ext_api_info.ext_api_id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.sys_ext_api_info.if_name IS '연동 이름';
COMMENT ON COLUMN public.sys_ext_api_info.ext_sys IS '연동 시스템 Code , "ext_sys_code" comm code 참조';
COMMENT ON COLUMN public.sys_ext_api_info.ext_url IS '연동 기본 url';
COMMENT ON COLUMN public.sys_ext_api_info.auth IS '연동 인증키 ';
COMMENT ON COLUMN public.sys_ext_api_info.data_format IS '데이타 포멧 ( 예: JSON, XML 등)';
COMMENT ON COLUMN public.sys_ext_api_info.latest_sync_time IS '최근 데이터 수집 시간';
COMMENT ON COLUMN public.sys_ext_api_info.del_yn IS '삭제여부 (Y: 삭제)';
COMMENT ON COLUMN public.sys_ext_api_info.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.sys_ext_api_info.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.sys_ext_api_info.deleted_at IS '삭제 일시 (논리 삭제 시 기록)';
COMMENT ON COLUMN public.sys_ext_api_info.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.sys_ext_api_info.updated_by IS '데이터 수정자';
COMMENT ON COLUMN public.sys_ext_api_info.deleted_by IS '데이터 삭제자';




-- ################################################
-- ## Open Api User 인증 키 관련 테이블 생성 
-- ################################################


-- #### IITP Open Api User  정보 테이블 (Client -> IITP) ####

-- # public.open_api_user definition

DROP TABLE IF EXISTS public.open_api_user;


CREATE TABLE public.open_api_user (
	user_id BIGSERIAL NOT NULL, -- system id, 고유 식별자 (자동 증가)
	login_id VARCHAR(128) NOT NULL,  -- user login id(e-mail)
	password CHAR(60) NOT NULL,	 -- user login password (bcrypt Hassing)
	user_name VARCHAR(90) NOT NULL, -- user name
	
	status char(1) DEFAULT 'A'  NOT NULL, -- 데이터 상태,  "data_status" comm code 참조
	del_yn char(1) DEFAULT 'N'::bpchar NOT NULL, -- 삭제여부 (Y: 삭제)
	
	latest_key_created_at timestamptz, -- 마지막으로 KEY 발급받은 시간 
	latest_login_at timestamptz, -- latest login time 
	
	affiliation VARCHAR(200), -- client 소속
	note VARCHAR(600), -- 비고
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	deleted_at timestamptz NULL, -- 삭제 일시 (논리 삭제 시 기록)
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조
	updated_by varchar(40) NULL, -- 데이터 수정자
	deleted_by varchar(40) NULL, -- 데이터 삭제자
	
	CONSTRAINT pkey_open_api_user PRIMARY KEY (user_id)
);

CREATE UNIQUE INDEX uidx_open_api_user_login ON public.open_api_user USING btree (login_id);
CREATE INDEX idx_open_api_user_name ON public.open_api_user USING btree (user_name);
COMMENT ON TABLE public.open_api_user IS 'IITP Open Api User 정보 테이블(IITP API 사용자)';

COMMENT ON COLUMN public.open_api_user.user_id IS ' system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.open_api_user.login_id IS 'User login id(e-mail)';
COMMENT ON COLUMN public.open_api_user.password IS 'User login password (bcrypt Hassing)';
COMMENT ON COLUMN public.open_api_user.user_name IS 'User name';

COMMENT ON COLUMN public.open_api_user.status IS '"data_status" comm code 참조';
COMMENT ON COLUMN public.open_api_user.del_yn IS '삭제여부 (Y: 삭제)';

COMMENT ON COLUMN public.open_api_user.affiliation IS 'User 소속';
COMMENT ON COLUMN public.open_api_user.note IS '비고';

COMMENT ON COLUMN public.open_api_user.latest_key_created_at IS '마지막으로 KEY 발급받은 시간';
COMMENT ON COLUMN public.open_api_user.latest_login_at IS '마지막 로그인 시각';

COMMENT ON COLUMN public.open_api_user.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.open_api_user.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.open_api_user.deleted_at IS '삭제 일시 (논리 삭제 시 기록)';
COMMENT ON COLUMN public.open_api_user.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.open_api_user.updated_by IS '데이터 수정자';
COMMENT ON COLUMN public.open_api_user.deleted_by IS '데이터 삭제자';



-- #### IITP Open Api Auth Key 정보 테이블 ####

-- # public.open_api_auth_key definition

DROP TABLE IF EXISTS public.open_api_auth_key ;
CREATE TABLE public.open_api_auth_key  (
	key_id BIGSERIAL NOT NULL, -- system id, 고유 식별자 (자동 증가)
	user_id int4 NOT NULL,  -- api user sys id. open_api_user.user_id
	auth_key VARCHAR(60) NOT NULL,	 -- api auth key
	active_yn char(1) DEFAULT 'Y'::bpchar NOT NULL , -- 활성화 여부 (Y:활성화)
	start_dt DATE,	 -- api auth key 유효 시작일
	end_dt DATE,	 -- api auth key 유효 종료일
	del_yn char(1) DEFAULT 'N'::bpchar NOT NULL, -- 삭제여부 (Y: 삭제)
	key_name VARCHAR(120) NOT NULL, -- api key name 
	key_desc VARCHAR(600) NOT NULL, -- api key 사용 목적 
	key_reject_reason VARCHAR(600),  --  api key 허가 거절 이유
	active_at timestamptz, -- key 활성화된 일시
	latest_acc_at timestamptz, -- latest access time 
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	deleted_at timestamptz NULL, -- 삭제 일시 (논리 삭제 시 기록)
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조
	updated_by varchar(40) NULL, -- 데이터 수정자
	deleted_by varchar(40) NULL, -- 데이터 삭제자
	CONSTRAINT pkey_open_api_auth_key  PRIMARY KEY (key_id)
);
CREATE UNIQUE INDEX uidx_open_api_auth_key_authkey ON public.open_api_auth_key USING btree (auth_key);
CREATE INDEX idx_open_api_auth_key_user_date ON public.open_api_auth_key USING btree (user_id, start_dt, end_dt);
COMMENT ON TABLE public.open_api_auth_key IS 'IITP Open Api Auth Key 정보 테이블';


COMMENT ON COLUMN public.open_api_auth_key.key_id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.open_api_auth_key.user_id IS ' api user sys id. open_api_user.user_id';
COMMENT ON COLUMN public.open_api_auth_key.auth_key IS ' api auth key';
COMMENT ON COLUMN public.open_api_auth_key.active_yn IS '활성화 여부 (Y:활성화)';
COMMENT ON COLUMN public.open_api_auth_key.start_dt IS ' api auth key 유효 시작일';
COMMENT ON COLUMN public.open_api_auth_key.start_dt IS ' api auth key 유효 종료일';
COMMENT ON COLUMN public.open_api_auth_key.del_yn IS '삭제여부 (Y: 삭제)';

COMMENT ON COLUMN public.open_api_auth_key.key_name IS 'api key name';
COMMENT ON COLUMN public.open_api_auth_key.key_desc IS 'api key 사용 목적';
COMMENT ON COLUMN public.open_api_auth_key.key_reject_reason IS 'api key 허가 거절 이유';


COMMENT ON COLUMN public.open_api_auth_key.active_at IS 'key 활성화된 일시';
COMMENT ON COLUMN public.open_api_auth_key.latest_acc_at IS 'latest access time ';

COMMENT ON COLUMN public.open_api_auth_key.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.open_api_auth_key.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.open_api_auth_key.deleted_at IS '삭제 일시 (논리 삭제 시 기록)';
COMMENT ON COLUMN public.open_api_auth_key.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.open_api_auth_key.updated_by IS '데이터 수정자';
COMMENT ON COLUMN public.open_api_auth_key.deleted_by IS '데이터 삭제자';



-- ################################################
-- ## 기초 데이터 - KOSIS 원천 통계 데이터 수집 API 정보 테이블 생성
-- ################################################



-- #### [주의] 통계 데이터 수집으로 sys_stats_src_api_info 테이블의 데이터가 변경되면, sys_data_summary_info 테이블 데이터도 update 해야 함. 

-- # public.sys_stats_src_api_info definition
DROP TABLE IF EXISTS public.sys_stats_src_api_info;

CREATE TABLE public.sys_stats_src_api_info (
	stat_api_id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	ext_api_id int4 NOT NULL, -- 연동 시스템 정보 ID, sys_ext_api_info.ext_api_id
	
	status char(1) DEFAULT 'A'  NOT NULL, -- 데이터 상태,  "data_status" comm code 참조
	del_yn char(1) DEFAULT 'N'::bpchar NOT NULL, -- 삭제여부 (Y: 삭제)
	
	stat_title varchar(300) NOT NULL, -- 데이터명
	stat_tbl_id varchar(40) NOT NULL, -- 원데이터 통계 id
	
	use_base_url_yn char(1) NOT NULL, -- 기본 url 필요 여부(Y/N). "Y" 이면 이면 sys_ext_api_info.ext_url 사용
	api_data_url varchar(600) NOT NULL, -- 연동할 stas data API URL Inof(json {"url":, "format":}), {API_AUTH_KEY}를 실제 Key로 치환, {PRD_CNT}를 몇년치 데이터를 가져올지 치환 
	api_meta_url varchar(400) ,          -- 연동할 stat meta API URL Inof(json {"url":, "format":}), {API_AUTH_KEY}를 실제 Key로 치환  
	[REDACTED]varchar(400) , -- 연동할 stat latest change date API URL Inof(json {"url":, "format":}), {API_AUTH_KEY}를 실제 Key로 치환  
	
	latest_sync_time timestamptz NULL, -- 최근 데이터 수집 시간
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	deleted_at timestamptz NULL, -- 삭제 일시 (논리 삭제 시 기록)
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조
	updated_by varchar(40) NULL, -- 데이터 수정자
	deleted_by varchar(40) NULL, -- 데이터 삭제자
	CONSTRAINT pkey_sys_st_src_api_info PRIMARY KEY (stat_api_id)
);
CREATE UNIQUE INDEX uidx_sys_st_src_api_info_ext_id_tbl_id ON public.sys_stats_src_api_info USING btree (ext_api_id, stat_tbl_ID);
COMMENT ON TABLE public.sys_stats_src_api_info IS '통계성 데이터 수집 API 정보';

-- Column comments
COMMENT ON COLUMN public.sys_stats_src_api_info.stat_api_id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.sys_stats_src_api_info.ext_api_id IS '연동 시스템 정보 ID, sys_ext_api_info.ext_api_id';

COMMENT ON COLUMN public.sys_stats_src_api_info.status IS '"data_status" comm code 참조';
COMMENT ON COLUMN public.sys_stats_src_api_info.del_yn IS '삭제여부 (Y: 삭제)';

COMMENT ON COLUMN public.sys_stats_src_api_info.stat_title IS '통계명';
COMMENT ON COLUMN public.sys_stats_src_api_info.stat_tbl_id IS '원데이터 통계 id';

COMMENT ON COLUMN public.sys_stats_src_api_info.use_base_url_yn IS '기본 url 필요 여부(Y/N). "Y" 이면 이면 sys_ext_api_info.ext_url 사용';
COMMENT ON COLUMN public.sys_stats_src_api_info.api_data_url IS '연동할 stas data API URL Inof(json {"url":, "format":}), {API_AUTH_KEY}를 실제 Key로 치환, {PRD_CNT}를 몇년치 데이터를 가져올지 치환';
COMMENT ON COLUMN public.sys_stats_src_api_info.api_meta_url IS '연동할 stat meta API URL Inof(json {"url":, "format":}), {API_AUTH_KEY}를 실제 Key로 치환';
COMMENT ON COLUMN public.sys_stats_src_api_info.[REDACTED]IS '연동할 stat latest change date API URL Inof(json {"url":, "format":}), {API_AUTH_KEY}를 실제 Key로 치환';

COMMENT ON COLUMN public.sys_stats_src_api_info.latest_sync_time IS '최근 데이터 수집 시간';
COMMENT ON COLUMN public.sys_stats_src_api_info.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.sys_stats_src_api_info.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.sys_stats_src_api_info.deleted_at IS '삭제 일시 (논리 삭제 시 기록)';
COMMENT ON COLUMN public.sys_stats_src_api_info.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.sys_stats_src_api_info.updated_by IS '데이터 수정자';
COMMENT ON COLUMN public.sys_stats_src_api_info.deleted_by IS '데이터 삭제자';





-- ################################################
-- ## 기초 데이터 - KOSIS 원천 통계 데이터 관련 테이블 생성
-- ################################################


-- # public.stats_src_data_info definition

-- First, delete the related foreign key link table.
--- FR_KEY with stats_src_data_info
-- KOSIS 원천 통계 데이터 
-- DROP TABLE IF EXISTS public.stats_kosis_origin_data;
-- DROP TABLE IF EXISTS public.stats_kosis_metadata_code;

-- 주거 자립 현황
DROP TABLE IF EXISTS public.stats_dis_reg_natl_by_new;
DROP TABLE IF EXISTS public.stats_dis_reg_sido_by_type_sev_gen;
DROP TABLE IF EXISTS public.stats_dis_reg_natl_by_age_type_sev_gen;
DROP TABLE IF EXISTS public.stats_dis_life_supp_need_lvl;
DROP TABLE IF EXISTS public.stats_dis_life_maincarer;
DROP TABLE IF EXISTS public.stats_dis_life_primcarer;
DROP TABLE IF EXISTS public.stats_dis_life_supp_field;
-- 건강 관리 현황
DROP TABLE IF EXISTS public.stats_dis_hlth_medical_usage;
DROP TABLE IF EXISTS public.stats_dis_hlth_disease_cost_sub;
DROP TABLE IF EXISTS public.stats_dis_hlth_sport_exec_type;
DROP TABLE IF EXISTS public.stats_dis_hlth_exrc_best_aid;
-- 보조기기 사용 현황
DROP TABLE IF EXISTS public.stats_dis_aid_device_usage;
DROP TABLE IF EXISTS public.stats_dis_aid_device_need;
-- 진로 교육 현황
DROP TABLE IF EXISTS public.stats_dis_edu_voca_exec;
DROP TABLE IF EXISTS public.stats_dis_edu_voca_exec_way;
-- 고용 현황
DROP TABLE IF EXISTS public.stats_dis_emp_natl;
DROP TABLE IF EXISTS public.stats_dis_emp_natl_public;
DROP TABLE IF EXISTS public.stats_dis_emp_natl_private;
DROP TABLE IF EXISTS public.stats_dis_emp_natl_gov_org;
DROP TABLE IF EXISTS public.stats_dis_emp_natl_dis_type_sev;
DROP TABLE IF EXISTS public.stats_dis_emp_natl_dis_type_indust;
-- 사회망 현황
DROP TABLE IF EXISTS public.stats_dis_soc_partic_freq;
DROP TABLE IF EXISTS public.stats_dis_soc_contact_cntfreq;
-- 편의 시설 제공 현황
DROP TABLE IF EXISTS public.stats_dis_fclty_welfare_usage; 
 

-- Drop table

-- #### [주의] 통계 데이터 수집으로 sys_stats_src_api_info, stats_src_data_info 테이블의 데이터가 변경되면, sys_data_summary_info 테이블 데이터도 update 해야 함. 

DROP TABLE IF EXISTS public.stats_src_data_info;

-- Create table
--- dt 타입을 명시하는 것이 필요할 것 같음( 특정 통계는 dt가 string 인 경우가 존재, 대부분은 숫자형(NUMERIC(15,3)) )
CREATE TABLE public.stats_src_data_info (
	src_data_id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	ext_api_id int4 NOT NULL, -- 연동 시스템 정보 ID, sys_ext_api_info.ext_api_id
	ext_sys varchar(10) NULL, -- 데이터 수집한 외부 시스템 코드, "ext_sys_code" comm code 참조. ext_api_id.ext_sys_code 코드와 동일
	stat_api_id int4 NOT NULL, -- 데이터 수집 API 정보 ID, sys_stats_src_api_info.stat_api_id
	
	intg_tbl_id VARCHAR(50) NOT NULL,           -- 데이터 동합할 내부 db table id
	
	stat_title varchar(300) NOT NULL, -- 데이터명
	stat_org_id varchar(12) NOT NULL, -- 작성기관 코드 , "stats_src_orgId" comm code 참조
	stat_survey_name varchar(300) NOT NULL, -- 조사명
    stat_pub_dt varchar(12) NOT NULL, -- 작성시점
	
	periodicity varchar(10) not NULL, -- 데이터 수집 주기 (예: 년,2년...)
	collect_start_dt varchar(12) NOT NULL, -- 데이터 수집 기간-시작 (예: 2019-01 ~ 2024-12 이면 2019-01)
	collect_end_dt varchar(12) NOT NULL, -- 데이터 수집 기간-종료 (예: 2019-01 ~ 2024-12 이면 2024-12)
	
	stat_tbl_id varchar(40) NOT NULL, -- 원데이터 통계 id
	stat_tbl_name varchar(300) NOT NULL, -- 원데이터 통계표명

	
	stat_latest_chn_dt varchar(12) NOT NULL, -- 수집기관 최종 자료갱신일 (예:2024-07-19)
	stat_data_ref_dt varchar(12) NULL, -- KOSIS 통계 데이터를 iitp 시스템에서 마지막 수집/참조 일자 (예:2024-07-19)
	
	avail_cat_cols varchar(40) NULL, -- 사용가능한 Categories (c1~c3) 예: "["c1","c2"]"
	
	status char(1) DEFAULT 'A'  NOT NULL, -- 데이터 상태,  "data_status" comm code 참조
	del_yn bpchar(1) DEFAULT 'N'::bpchar NOT NULL, -- 삭제여부 (Y: 삭제)
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	deleted_at timestamptz NULL, -- 삭제 일시 (논리 삭제 시 기록)
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조
	updated_by varchar(40) NULL, -- 데이터 수정자
	deleted_by varchar(40) NULL, -- 데이터 삭제자
	CONSTRAINT pkey_st_src_data_info PRIMARY KEY (src_data_id)
);
CREATE UNIQUE INDEX uidx_st_src_data_info_title ON public.stats_src_data_info USING btree (stat_title );
CREATE UNIQUE INDEX uidx_st_src_data_info_ext_id_tbl_id ON public.stats_src_data_info USING btree (ext_api_id, stat_tbl_ID );
COMMENT ON TABLE public.stats_src_data_info IS '통계성 데이터 수집 소스 데이터 정보';

-- Column comments

COMMENT ON COLUMN public.stats_src_data_info.src_data_id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_src_data_info.ext_api_id IS '연동 시스템 정보 ID, sys_ext_api_info.ext_api_id';
COMMENT ON COLUMN public.stats_src_data_info.ext_sys IS '데이터 수집한 외부 시스템 코드, "ext_sys_code" comm code 참조. ext_api_id.ext_sys_code 코드와 동일';
COMMENT ON COLUMN public.stats_src_data_info.stat_api_id IS '데이터 수집 API 정보 ID, sys_stats_src_api_info.stat_api_id';


COMMENT ON COLUMN public.stats_src_data_info.intg_tbl_id IS '데이터 동합할 내부 db table id';
COMMENT ON COLUMN public.stats_src_data_info.stat_title IS '통계명';
COMMENT ON COLUMN public.stats_src_data_info.stat_org_id IS '작성기관 코드 , "stats_src_orgId" comm code 참조';
COMMENT ON COLUMN public.stats_src_data_info.stat_survey_name IS '조사명';
COMMENT ON COLUMN public.stats_src_data_info.periodicity IS '데이터 수집 주기  (예: 년,2년...)';
COMMENT ON COLUMN public.stats_src_data_info.collect_start_dt IS '데이터 수집 기간-시작 (예: 2019-01 ~ 2024-12 이면 2019-01)';
COMMENT ON COLUMN public.stats_src_data_info.collect_end_dt IS '데이터 수집 기간-종료 (예: 2019-01 ~ 2024-12 이면 2024-12)';
COMMENT ON COLUMN public.stats_src_data_info.stat_tbl_id IS '원데이터 통계 id';
COMMENT ON COLUMN public.stats_src_data_info.stat_tbl_name IS '원데이터 통계표명';
COMMENT ON COLUMN public.stats_src_data_info.stat_latest_chn_dt IS '수집기관 최종 자료갱신일 (예:2024-07-19)';
COMMENT ON COLUMN public.stats_src_data_info.stat_data_ref_dt IS 'KOSIS 통계 데이터를 iitp 시스템에서 마지막 수집/참조 일자';
COMMENT ON COLUMN public.stats_src_data_info.avail_cat_cols IS '사용가능한 Categories (c1~c3) 예: "["c1","c2"]"';


COMMENT ON COLUMN public.stats_src_data_info.status IS '"data_status" comm code 참조';
COMMENT ON COLUMN public.stats_src_data_info.del_yn IS '삭제여부 (Y: 삭제)';

COMMENT ON COLUMN public.stats_src_data_info.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_src_data_info.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_src_data_info.deleted_at IS '삭제 일시 (논리 삭제 시 기록)';
COMMENT ON COLUMN public.stats_src_data_info.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_src_data_info.updated_by IS '데이터 수정자';
COMMENT ON COLUMN public.stats_src_data_info.deleted_by IS '데이터 삭제자';



-- #### KOSIS 원천 통계 데이터의 분류/항목 코드 정보 ####

-- # public.stats_kosis_metadata_code definition

-- Drop table if table exists
DROP TABLE IF EXISTS public.stats_kosis_metadata_code;

CREATE TABLE stats_kosis_metadata_code (
    id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
    src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
    tbl_id VARCHAR(40) NOT NULL,           -- 통계표ID
    
    obj_id VARCHAR(40) NOT null	,	-- 분류 ID
    obj_nm VARCHAR(300) NOT NULL,	-- 분류명 (한글)
   
    itm_id VARCHAR(40) NOT NULL,	-- 자료코드 ID
    itm_nm VARCHAR(300) NOT NULL,	-- 자료코드명 (한글)
    
    up_itm_id VARCHAR(40),			-- 상위 자료코드 ID
    obj_id_sn SMALLINT,				-- 분류값 순번
    
    unit_id VARCHAR(40),			-- 단위 ID
    unit_nm VARCHAR(20),			-- 
   
    stat_latest_chn_dt date,         -- 수집기관 최종 자료갱신일 (예:2024-07-19)
    
    created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updated_at timestamptz DEFAULT CURRENT_TIMESTAMP,
    created_by VARCHAR(50),
    updated_by VARCHAR(50),
    CONSTRAINT pkey_st_kosis_metadata_code PRIMARY KEY (id)
);

CREATE UNIQUE INDEX uidx_st_kosis_metadata_code_obj_itm_id_latest ON public.stats_kosis_metadata_code USING btree (src_data_id, tbl_id, obj_id, itm_id, stat_latest_chn_dt);

COMMENT ON TABLE public.stats_kosis_metadata_code IS '수집해 온 KOSIS 원천 통계 데이터의 분류/항목 코드 정보';

COMMENT ON COLUMN public.stats_kosis_metadata_code.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_kosis_metadata_code.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_kosis_metadata_code.tbl_id IS '통계표 ID';

COMMENT ON COLUMN public.stats_kosis_metadata_code.obj_id IS '분류 ID';
COMMENT ON COLUMN public.stats_kosis_metadata_code.obj_nm IS '분류명 (한글)';
COMMENT ON COLUMN public.stats_kosis_metadata_code.itm_id IS '자료코드 ID';
COMMENT ON COLUMN public.stats_kosis_metadata_code.itm_nm IS '자료코드명 (한글)';

COMMENT ON COLUMN public.stats_kosis_metadata_code.up_itm_id IS '상위 자료코드 ID';
COMMENT ON COLUMN public.stats_kosis_metadata_code.obj_id_sn IS '분류값 순번';
COMMENT ON COLUMN public.stats_kosis_metadata_code.unit_id IS '단위 ID';
COMMENT ON COLUMN public.stats_kosis_metadata_code.unit_nm IS '단위명 (한글)';

COMMENT ON COLUMN public.stats_kosis_metadata_code.stat_latest_chn_dt IS '수집기관 최종 자료갱신일 (예:2024-07-19)';

COMMENT ON COLUMN public.stats_kosis_metadata_code.created_at IS '생성 일시';
COMMENT ON COLUMN public.stats_kosis_metadata_code.created_by IS '생성자';
COMMENT ON COLUMN public.stats_kosis_metadata_code.updated_at IS '최종 수정 일시';
COMMENT ON COLUMN public.stats_kosis_metadata_code.updated_by IS '최종 수정자';



-- #### KOSIS 원천 통계 데이터 ####

-- # public.stats_kosis_origin_data definition

-- Drop table if table exists
DROP TABLE IF EXISTS public.stats_kosis_origin_data;

-- Create table
CREATE TABLE stats_kosis_origin_data (
    id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
    src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
    
    
    org_id int2 NOT NULL,           -- 기관코드
    tbl_id VARCHAR(40) NOT NULL,           -- 통계표ID
    tbl_nm VARCHAR(300) NOT NULL,          -- 통계표명
	
    c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), c4 VARCHAR(24), -- 분류값 ID1 ~ 4, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류'
	
    c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), c4_obj_nm VARCHAR(300), -- 분류명1 ~ 4
	
    c1_nm VARCHAR(300) NOT NULL, c2_nm VARCHAR(300), c3_nm VARCHAR(300), c4_nm VARCHAR(300), -- 분류값 명1 ~ 4

	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    itm_nm VARCHAR(300) NOT NULL,         -- 항목명
    
    unit_nm VARCHAR(20),                 -- 단위명
	
    prd_se VARCHAR(2) NOT NULL,                    -- 수록주기
    prd_de VARCHAR(10) NOT NULL,                     -- 수록시점
	
    dt  VARCHAR(100)  NOT NULL,                       -- 수치 값
	
    lst_chn_de VARCHAR(10),                 -- 데이터별 최종수정일 (예:2024-07-19)
  
    stat_latest_chn_dt VARCHAR(10),         -- 수집기관 최종 자료갱신일 (예:2024-07-19)
    data_ref_dt date NULL, 					-- KOSIS 통계 데이터를 iitp 시스템에서 마지막 수집/참조 일자
    
    created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
    created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조
    
	CONSTRAINT pkey_stats_kosis_org_data PRIMARY KEY (id)
);

CREATE INDEX idx_st_kosis_org_data_src_data_org_tbl_id ON public.stats_kosis_origin_data USING btree (src_data_id, org_id,tbl_id );
CREATE INDEX idx_st_kosis_org_data_src_data_latest_chn_dt ON public.stats_kosis_origin_data USING btree (src_data_id, stat_latest_chn_dt );
COMMENT ON TABLE public.stats_kosis_origin_data IS '수집해 온 KOSIS 원천 통계 데이터';


-- 필드별 COMMENT 추가
COMMENT ON COLUMN public.stats_kosis_origin_data.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_kosis_origin_data.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';


COMMENT ON COLUMN public.stats_kosis_origin_data.org_id IS '기관 코드';
COMMENT ON COLUMN public.stats_kosis_origin_data.tbl_id IS '통계표 ID';
COMMENT ON COLUMN public.stats_kosis_origin_data.tbl_nm IS '통계표명';

COMMENT ON COLUMN public.stats_kosis_origin_data.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_kosis_origin_data.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_kosis_origin_data.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_kosis_origin_data.c4 IS '분류값 ID4, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';


COMMENT ON COLUMN public.stats_kosis_origin_data.c1_obj_nm IS '분류명1';
COMMENT ON COLUMN public.stats_kosis_origin_data.c2_obj_nm IS '분류명2';
COMMENT ON COLUMN public.stats_kosis_origin_data.c3_obj_nm IS '분류명3';
COMMENT ON COLUMN public.stats_kosis_origin_data.c4_obj_nm IS '분류명4';


COMMENT ON COLUMN public.stats_kosis_origin_data.c1_nm IS '분류값 명1';
COMMENT ON COLUMN public.stats_kosis_origin_data.c2_nm IS '분류값 명2';
COMMENT ON COLUMN public.stats_kosis_origin_data.c3_nm IS '분류값 명3';
COMMENT ON COLUMN public.stats_kosis_origin_data.c4_nm IS '분류값 명4';

COMMENT ON COLUMN public.stats_kosis_origin_data.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';
COMMENT ON COLUMN public.stats_kosis_origin_data.itm_nm IS '항목명, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_kosis_origin_data.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_kosis_origin_data.prd_se IS '수록주기';
COMMENT ON COLUMN public.stats_kosis_origin_data.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_kosis_origin_data.dt IS '수치 값';

COMMENT ON COLUMN public.stats_kosis_origin_data.lst_chn_de IS '데이터별 최종수정일 (예:2024-07-19)';
COMMENT ON COLUMN public.stats_kosis_origin_data.stat_latest_chn_dt IS '수집기관 최종 자료갱신일 (예:2024-07-19)';

COMMENT ON COLUMN public.stats_kosis_origin_data.data_ref_dt IS 'KOSIS 통계 데이터를 iitp 시스템에서 마지막 수집/참조 일자 (예:2024-07-19)';

COMMENT ON COLUMN public.stats_kosis_origin_data.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_kosis_origin_data.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';



-- ################################################
-- ## 기초 데이터 - 통합된 KOSIS 통계 데이터 관련 테이블 생성
-- ################################################


-- #### 주거 자립 현황 ####

-- # public.stats_dis_reg_natl_by_new definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_reg_natl_by_new;

CREATE TABLE public.stats_dis_reg_natl_by_new (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3

    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_reg_natl_by_new PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_reg_natl_by_new_year_c1t3 ON public.stats_dis_reg_natl_by_new USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_reg_natl_by_new IS '기초-주거 자립 현황- 전국 장애인 신규등록 장애인 현황';

-- Column comments

COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_reg_natl_by_new.updated_by IS '데이터 수정자';


-- public.stats_dis_reg_natl_by_new foreign keys

ALTER TABLE public.stats_dis_reg_natl_by_new ADD CONSTRAINT fk_st_dis_reg_natl_by_new FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);



-- # public.stats_dis_reg_natl_by_age_type_sev_gen definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_reg_natl_by_age_type_sev_gen;

CREATE TABLE public.stats_dis_reg_natl_by_age_type_sev_gen (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_reg_natl_by_age_type_sev_gen PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_reg_natl_by_age_type_sev_gen_year_c1t3 ON public.stats_dis_reg_natl_by_age_type_sev_gen USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_reg_natl_by_age_type_sev_gen IS '기초-주거 자립 현황-전국 연령별,장애등급별,성별 등록장애인수';

-- Column comments

COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_reg_natl_by_age_type_sev_gen.updated_by IS '데이터 수정자';


-- public.stats_dis_reg_natl_by_age_type_sev_gen foreign keys

ALTER TABLE public.stats_dis_reg_natl_by_age_type_sev_gen ADD CONSTRAINT fk_st_dis_reg_natl_by_age_type_sev_gen FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);



-- # public.stats_dis_reg_sido_by_type_sev_gen definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_reg_sido_by_type_sev_gen;

CREATE TABLE public.stats_dis_reg_sido_by_type_sev_gen (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_reg_sido_by_type_sev_gen PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_reg_sido_by_type_sev_gen_year_c1t3 ON public.stats_dis_reg_sido_by_type_sev_gen USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_reg_sido_by_type_sev_gen IS '기초-주거 자립 현황-시도별,장애유형별,장애정도별,성별 등록장애인수';

-- Column comments

COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_reg_sido_by_type_sev_gen.updated_by IS '데이터 수정자';


-- public.stats_dis_reg_sido_by_type_sev_gen foreign keys

ALTER TABLE public.stats_dis_reg_sido_by_type_sev_gen ADD CONSTRAINT fk_st_dis_reg_sido_by_type_sev_gen FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);



-- # public.stats_dis_life_supp_need_lvl definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_life_supp_need_lvl;

CREATE TABLE public.stats_dis_life_supp_need_lvl (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_life_supp_need_lvl PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_life_supp_need_lvl_year_c1t3 ON public.stats_dis_life_supp_need_lvl USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_life_supp_need_lvl IS '기초-주거 자립 현황-일상생활 필요 지원 정도';

-- Column comments

COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_life_supp_need_lvl.updated_by IS '데이터 수정자';


-- public.stats_dis_life_supp_need_lvl foreign keys

ALTER TABLE public.stats_dis_life_supp_need_lvl ADD CONSTRAINT fk_st_dis_life_supp_need_lvl FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);



-- # public.stats_dis_life_maincarer definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_life_maincarer;

CREATE TABLE public.stats_dis_life_maincarer (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_life_maincarer PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_life_maincarer_year_c1t3 ON public.stats_dis_life_maincarer USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_life_maincarer IS '기초-주거 자립 현황-주로 지원해주는 사람의 유형';

-- Column comments

COMMENT ON COLUMN public.stats_dis_life_maincarer.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_life_maincarer.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_life_maincarer.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_life_maincarer.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_life_maincarer.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_life_maincarer.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_life_maincarer.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_life_maincarer.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_life_maincarer.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_life_maincarer.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_life_maincarer.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_life_maincarer.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_life_maincarer.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_life_maincarer.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_life_maincarer.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_life_maincarer.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_life_maincarer.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_life_maincarer.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_life_maincarer.updated_by IS '데이터 수정자';


-- public.stats_dis_life_maincarer foreign keys

ALTER TABLE public.stats_dis_life_maincarer ADD CONSTRAINT fk_st_dis_life_maincarer FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);



-- # public.stats_dis_life_primcarer definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_life_primcarer;

CREATE TABLE public.stats_dis_life_primcarer (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_life_primcarer PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_life_primcarer_year_c1t3 ON public.stats_dis_life_primcarer USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_life_primcarer  IS '기초-주거 자립 현황-일상생활 도와주는 사람(1순위)';

-- Column comments

COMMENT ON COLUMN public.stats_dis_life_primcarer.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_life_primcarer.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_life_primcarer.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_life_primcarer.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_life_primcarer.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_life_primcarer.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_life_primcarer.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_life_primcarer.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_life_primcarer.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_life_primcarer.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_life_primcarer.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_life_primcarer.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_life_primcarer.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_life_primcarer.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_life_primcarer.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_life_primcarer.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_life_primcarer.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_life_primcarer.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_life_primcarer.updated_by IS '데이터 수정자';


-- public.stats_dis_life_primcarer foreign keys

ALTER TABLE public.stats_dis_life_primcarer ADD CONSTRAINT fk_st_dis_life_primcarer FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);


-- # public.stats_dis_life_supp_field definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_life_supp_field;

CREATE TABLE public.stats_dis_life_supp_field (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_life_supp_field PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_life_supp_field_year_c1t3 ON public.stats_dis_life_supp_field USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_life_supp_field  IS '기초-주거 자립 현황-도움받는 분야';

-- Column comments

COMMENT ON COLUMN public.stats_dis_life_supp_field.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_life_supp_field.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_life_supp_field.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_life_supp_field.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_life_supp_field.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_life_supp_field.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_life_supp_field.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_life_supp_field.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_life_supp_field.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_life_supp_field.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_life_supp_field.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_life_supp_field.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_life_supp_field.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_life_supp_field.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_life_supp_field.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_life_supp_field.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_life_supp_field.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_life_supp_field.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_life_supp_field.updated_by IS '데이터 수정자';


-- public.stats_dis_life_supp_field foreign keys

ALTER TABLE public.stats_dis_life_supp_field ADD CONSTRAINT fk_st_dis_life_supp_field FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);




-- #### 건강 관리 현황 ####

-- # public.stats_dis_hlth_medical_usage definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_hlth_medical_usage;

CREATE TABLE public.stats_dis_hlth_medical_usage (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
	
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_hlth_medi_usage PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_hlth_medi_usageyear_c1t3 ON public.stats_dis_hlth_medical_usage USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_hlth_medical_usage IS '기초-건강 관리 현황-장애인 의료이용 현황';

-- Column comments

COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_hlth_medical_usage.updated_by IS '데이터 수정자';


-- public.stats_dis_hlth_medical_usage foreign keys

ALTER TABLE public.stats_dis_hlth_medical_usage ADD CONSTRAINT fk_st_dis_hlth_medi_usage FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);


-- # public.stats_dis_hlth_disease_cost_sub definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_hlth_disease_cost_sub;

CREATE TABLE public.stats_dis_hlth_disease_cost_sub (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
	
	dt  VARCHAR(100)  NOT NULL,                       -- 수치 값
    -- dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_hlth_dcost_sub PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_hlth_dcost_subyear_c1t3 ON public.stats_dis_hlth_disease_cost_sub USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_hlth_disease_cost_sub IS '기초-건강 관리 현황-장애인 장애유형별 다빈도질환별 진료비현황: 소분류 (maj(대)/mid(중)/sub(소))';

-- Column comments

COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_hlth_disease_cost_sub.updated_by IS '데이터 수정자';


-- public.stats_dis_hlth_disease_cost_sub foreign keys

ALTER TABLE public.stats_dis_hlth_disease_cost_sub ADD CONSTRAINT fk_st_dis_hlth_dcost_sub FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);


-- # public.stats_dis_hlth_sport_exec_type definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_hlth_sport_exec_type;

CREATE TABLE public.stats_dis_hlth_sport_exec_type (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
	
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_hlth_sport_exec_type PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_hlth_sport_exec_type_year_c1t3 ON public.stats_dis_hlth_sport_exec_type USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_hlth_sport_exec_type IS '기초-건강 관리 현황-장애인 생활체육 실행 유형';

-- Column comments

COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_hlth_sport_exec_type.updated_by IS '데이터 수정자';


-- public.stats_dis_hlth_sport_exec_type foreign keys

ALTER TABLE public.stats_dis_hlth_sport_exec_type ADD CONSTRAINT fk_st_dis_hlth_sport_exec_type FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);


-- # public.stats_dis_hlth_exrc_best_aid definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_hlth_exrc_best_aid;

CREATE TABLE public.stats_dis_hlth_exrc_best_aid (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
	
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_hlth_exrc_best_aid PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_hlth_exrc_best_aid_year_c1t3 ON public.stats_dis_hlth_exrc_best_aid USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_hlth_exrc_best_aid IS '기초-건강 관리 현황-운동 시 가장 도움이 되는 지원 사항';

-- Column comments

COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_hlth_exrc_best_aid.updated_by IS '데이터 수정자';


-- public.stats_dis_hlth_exrc_best_aid foreign keys

ALTER TABLE public.stats_dis_hlth_exrc_best_aid ADD CONSTRAINT fk_st_dis_hlth_exrc_best_aid FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);




-- #### 보조기기 사용 현황 ####

-- # public.stats_dis_aid_device_usage definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_aid_device_usage;

CREATE TABLE public.stats_dis_aid_device_usage (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
	
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_aid_device_usage PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_aid_device_usage_year_c1t3 ON public.stats_dis_aid_device_usage USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_aid_device_usage IS '기초-보조기기 사용 현황-장애인보조기기 사용여부';

-- Column comments

COMMENT ON COLUMN public.stats_dis_aid_device_usage.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_aid_device_usage.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_aid_device_usage.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_aid_device_usage.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_aid_device_usage.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_aid_device_usage.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_aid_device_usage.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_aid_device_usage.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_aid_device_usage.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_aid_device_usage.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_aid_device_usage.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_aid_device_usage.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_aid_device_usage.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_aid_device_usage.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_aid_device_usage.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_aid_device_usage.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_aid_device_usage.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_aid_device_usage.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_aid_device_usage.updated_by IS '데이터 수정자';


-- public.stats_dis_aid_device_usage foreign keys

ALTER TABLE public.stats_dis_aid_device_usage ADD CONSTRAINT fk_st_dis_aid_device_usage FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);


-- # public.stats_dis_aid_device_need definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_aid_device_need;

CREATE TABLE public.stats_dis_aid_device_need (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_aid_device_need PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_aid_device_need_year_c1t3 ON public.stats_dis_aid_device_need USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_aid_device_need IS '기초-보조기기 사용 현황-장애인보조기기 필요여부';

-- Column comments

COMMENT ON COLUMN public.stats_dis_aid_device_need.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_aid_device_need.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_aid_device_need.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_aid_device_need.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_aid_device_need.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_aid_device_need.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_aid_device_need.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_aid_device_need.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_aid_device_need.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_aid_device_need.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_aid_device_need.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_aid_device_need.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_aid_device_need.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_aid_device_need.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_aid_device_need.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_aid_device_need.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_aid_device_need.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_aid_device_need.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_aid_device_need.updated_by IS '데이터 수정자';


-- public.stats_dis_aid_device_need foreign keys

ALTER TABLE public.stats_dis_aid_device_need ADD CONSTRAINT fk_st_dis_aid_device_need FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);





-- #### 진로 교육 현황 ####


-- # public.stats_dis_edu_voca_exec definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_edu_voca_exec;

CREATE TABLE public.stats_dis_edu_voca_exec (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_edu_voca_exec PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_edu_voca_exec_year_c1t3 ON public.stats_dis_edu_voca_exec USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_edu_voca_exec IS '기초-진로 교육 현황-장애인 진로 및 직업교육 실시 여부';

-- Column comments

COMMENT ON COLUMN public.stats_dis_edu_voca_exec.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_edu_voca_exec.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_edu_voca_exec.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_edu_voca_exec.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_edu_voca_exec.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_edu_voca_exec.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_edu_voca_exec.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_edu_voca_exec.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_edu_voca_exec.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_edu_voca_exec.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_edu_voca_exec.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_edu_voca_exec.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_edu_voca_exec.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_edu_voca_exec.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_edu_voca_exec.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_edu_voca_exec.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_edu_voca_exec.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_edu_voca_exec.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_edu_voca_exec.updated_by IS '데이터 수정자';


-- public.stats_dis_edu_voca_exec foreign keys

ALTER TABLE public.stats_dis_edu_voca_exec ADD CONSTRAINT fk_st_dis_edu_voca_exec FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);



-- # public.stats_dis_edu_voca_exec_way definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_edu_voca_exec_way;

CREATE TABLE public.stats_dis_edu_voca_exec_way (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_edu_voca_exec_way PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_edu_voca_exec_way_year_c1t3 ON public.stats_dis_edu_voca_exec_way USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_edu_voca_exec_way IS '기초-진로 교육 현황-장애인 진로 및 직업교육 운영 방법';

-- Column comments

COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_edu_voca_exec_way.updated_by IS '데이터 수정자';


-- public.stats_dis_edu_voca_exec_way foreign keys

ALTER TABLE public.stats_dis_edu_voca_exec_way ADD CONSTRAINT fk_st_dis_edu_voca_exec_way FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);





-- #### 고용 현황 ####

-- # public.stats_dis_emp_natl definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_emp_natl;

CREATE TABLE public.stats_dis_emp_natl (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_emp_natl PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_emp_natl_year_c1t3 ON public.stats_dis_emp_natl USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_emp_natl IS '기초-고용 현황-장애인 근로자 고용현황';

-- Column comments

COMMENT ON COLUMN public.stats_dis_emp_natl.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_emp_natl.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_emp_natl.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_emp_natl.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_emp_natl.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_emp_natl.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_emp_natl.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_emp_natl.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_emp_natl.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_emp_natl.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_emp_natl.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_emp_natl.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_emp_natl.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_emp_natl.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_emp_natl.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_emp_natl.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_emp_natl.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_emp_natl.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_emp_natl.updated_by IS '데이터 수정자';


-- public.stats_dis_emp_natl foreign keys

ALTER TABLE public.stats_dis_emp_natl ADD CONSTRAINT fk_st_dis_emp_natl FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);



-- # public.stats_dis_emp_natl_public definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_emp_natl_public;

CREATE TABLE public.stats_dis_emp_natl_public (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_emp_natl_pub PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_emp_natl_pub_year_c1t3 ON public.stats_dis_emp_natl_public USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_emp_natl_public IS '기초-고용 현황-공공기관 장애인고용 현황';

-- Column comments

COMMENT ON COLUMN public.stats_dis_emp_natl_public.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_emp_natl_public.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_emp_natl_public.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_emp_natl_public.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_emp_natl_public.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_emp_natl_public.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_emp_natl_public.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_emp_natl_public.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_emp_natl_public.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_emp_natl_public.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_emp_natl_public.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_emp_natl_public.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_emp_natl_public.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_emp_natl_public.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_emp_natl_public.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_emp_natl_public.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_emp_natl_public.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_emp_natl_public.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_emp_natl_public.updated_by IS '데이터 수정자';


-- public.stats_dis_emp_natl_public foreign keys

ALTER TABLE public.stats_dis_emp_natl_public ADD CONSTRAINT fk_st_dis_emp_natl_pub FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);



-- # public.stats_dis_emp_natl_private definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_emp_natl_private;

CREATE TABLE public.stats_dis_emp_natl_private (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_emp_natl_priv PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_emp_natl_priv_year_c1t3 ON public.stats_dis_emp_natl_private USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_emp_natl_private IS '기초-고용 현황-민간기업 장애인고용 현황';

-- Column comments

COMMENT ON COLUMN public.stats_dis_emp_natl_private.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_emp_natl_private.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_emp_natl_private.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_emp_natl_private.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_emp_natl_private.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_emp_natl_private.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_emp_natl_private.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_emp_natl_private.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_emp_natl_private.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_emp_natl_private.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_emp_natl_private.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_emp_natl_private.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_emp_natl_private.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_emp_natl_private.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_emp_natl_private.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_emp_natl_private.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_emp_natl_private.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_emp_natl_private.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_emp_natl_private.updated_by IS '데이터 수정자';


-- public.stats_dis_emp_natl_private foreign keys

ALTER TABLE public.stats_dis_emp_natl_private ADD CONSTRAINT fk_st_dis_emp_natl_priv FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);



-- # public.stats_dis_emp_natl_gov_org definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_emp_natl_gov_org;

CREATE TABLE public.stats_dis_emp_natl_gov_org (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_emp_natl_gov_org PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_emp_natl_gov_org_year_c1t3 ON public.stats_dis_emp_natl_gov_org USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_emp_natl_gov_org IS '기초-고용 현황-정부부문 장애인고용 현황';

-- Column comments

COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_emp_natl_gov_org.updated_by IS '데이터 수정자';


-- public.stats_dis_emp_natl_gov_org foreign keys

ALTER TABLE public.stats_dis_emp_natl_gov_org ADD CONSTRAINT fk_st_dis_emp_natl_gov_org FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);



-- # public.stats_dis_emp_natl_dis_type_sev definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_emp_natl_dis_type_sev;

CREATE TABLE public.stats_dis_emp_natl_dis_type_sev (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_emp_natl_dis_ty_sev PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_emp_natl_dis_ty_sev_year_c1t3 ON public.stats_dis_emp_natl_dis_type_sev USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_emp_natl_dis_type_sev IS '기초-고용 현황-장애유형 및 장애정도별 장애인 근로자 고용현황';

-- Column comments

COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_sev.updated_by IS '데이터 수정자';


-- public.stats_dis_emp_natl_dis_type_sev foreign keys

ALTER TABLE public.stats_dis_emp_natl_dis_type_sev ADD CONSTRAINT fk_st_dis_emp_natl_dis_ty_sev FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);



-- # public.stats_dis_emp_natl_dis_type_indust definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_emp_natl_dis_type_indust;

CREATE TABLE public.stats_dis_emp_natl_dis_type_indust (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_emp_natl_dis_ty_ind PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_emp_natl_dis_ty_ind_year_c1t3 ON public.stats_dis_emp_natl_dis_type_indust USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_emp_natl_dis_type_indust IS '기초-고용 현황-장애유형 및 산업별 장애인 근로자 고용현황';

-- Column comments

COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_emp_natl_dis_type_indust.updated_by IS '데이터 수정자';


-- public.stats_dis_emp_natl_dis_type_indust foreign keys

ALTER TABLE public.stats_dis_emp_natl_dis_type_indust ADD CONSTRAINT fk_st_dis_emp_natl_dis_ty_ind FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);



-- #### 사회망 현황 ####


-- # public.stats_dis_soc_partic_freq definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_soc_partic_freq;

CREATE TABLE public.stats_dis_soc_partic_freq (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_soc_partic_freq PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_soc_partic_freq_year_c1t3 ON public.stats_dis_soc_partic_freq USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_soc_partic_freq IS '기초-사회망 현황-장애인의 사회 참여';

-- Column comments

COMMENT ON COLUMN public.stats_dis_soc_partic_freq.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_soc_partic_freq.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_soc_partic_freq.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_soc_partic_freq.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_soc_partic_freq.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_soc_partic_freq.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_soc_partic_freq.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_soc_partic_freq.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_soc_partic_freq.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_soc_partic_freq.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_soc_partic_freq.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_soc_partic_freq.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_soc_partic_freq.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_soc_partic_freq.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_soc_partic_freq.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_soc_partic_freq.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_soc_partic_freq.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_soc_partic_freq.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_soc_partic_freq.updated_by IS '데이터 수정자';


-- public.stats_dis_soc_partic_freq foreign keys

ALTER TABLE public.stats_dis_soc_partic_freq ADD CONSTRAINT fk_st_dis_soc_partic_freq FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);



-- # public.stats_dis_soc_contact_cntfreq definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_soc_contact_cntfreq;

CREATE TABLE public.stats_dis_soc_contact_cntfreq (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_soc_contact_cntfreq PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_soc_contact_cntfreq_year_c1t3 ON public.stats_dis_soc_contact_cntfreq USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_soc_contact_cntfreq IS '기초-사회망 현황-가까이 지내는 친구, 이웃, 지인 수 및 만남 빈도';

-- Column comments

COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_soc_contact_cntfreq.updated_by IS '데이터 수정자';


-- public.stats_dis_soc_contact_cntfreq foreign keys

ALTER TABLE public.stats_dis_soc_contact_cntfreq ADD CONSTRAINT fk_st_dis_soc_contact_cntfreq FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);






-- #### 편의 시설 제공 현황 ####


-- # public.stats_dis_fclty_welfare_usage definition

-- Drop table

-- DROP TABLE IF EXISTS public.stats_dis_fclty_welfare_usage;

CREATE TABLE public.stats_dis_fclty_welfare_usage (
	id int4 GENERATED BY DEFAULT AS IDENTITY( INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1 CYCLE) NOT NULL, -- system id, 고유 식별자 (자동 증가)
	src_data_id int4 NOT NULL, -- 소스 데이터 정보 ID, stats_src_data_info.src_data_id
	
	prd_de int2 NOT NULL, -- 수록시점, 연도 (예: 2024)
	
	c1 VARCHAR(24) NOT NULL, c2 VARCHAR(24), c3 VARCHAR(24), -- 분류값 ID1 ~ 3, 값 > 3자일 일경우: 앞3자리는  group id, 검색 후 group id nm으 로표시. c#_obj하위에 group임. c#_obj > c# group > c#, itm_id는 별도 분류
	-- c1_obj_nm VARCHAR(300) NOT NULL, c2_obj_nm VARCHAR(300), c3_obj_nm VARCHAR(300), -- -- 분류명1 ~ 3
	
    itm_id VARCHAR(24) NOT NULL,           -- 항목 ID
    
    unit_nm VARCHAR(20),                 -- 단위명
    
    dt  NUMERIC(15,3)  NOT NULL,                       -- 수치 값
	
    lst_chn_de date,                 -- 데이터별 최종수정일
	src_latest_chn_dt date,         -- 수집기관 최종 자료갱신일
	
	created_at timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 레코드 생성 시각
	updated_at timestamptz DEFAULT CURRENT_TIMESTAMP, -- 레코드 수정 시각
	created_by varchar(40) NOT NULL, -- 데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조 (BACH, MANUAL, user id)
	updated_by varchar(40) NULL, -- 데이터 수정자
	
	CONSTRAINT pkey_st_dis_fclty_welfare_usage PRIMARY KEY (id)
);
CREATE INDEX idx_st_dis_fclty_welfare_usage_year_c1t3 ON public.stats_dis_fclty_welfare_usage USING btree (prd_de, c1, c2, c3);
COMMENT ON TABLE public.stats_dis_fclty_welfare_usage IS '기초-편의 시설 제공 현황-사회복지시설 이용 현황';

-- Column comments

COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.id IS 'system id, 고유 식별자 (자동 증가)';
COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.src_data_id IS '소스 데이터 정보 ID, stats_src_data_info.src_data_id';
COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.prd_de IS '수록시점, 연도 (예: 2024)';

COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.c1 IS '분류값 ID1, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.c2 IS '분류값 ID2, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';
COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.c3 IS '분류값 ID3, C#의 group은 c#_obj_nm, meta에서 obj_nm=c#_obj_nm으로 매칭, itm_id는 별도 분류';

-- COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.c1_obj_nm IS '분류명1';
-- COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.c2_obj_nm IS '분류명2';
-- COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.c3_obj_nm IS '분류명3';

COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.itm_id IS '항목 ID, meta에서 obj_id = ITEM or obj_nm=항목으로 매핑';

COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.unit_nm IS '단위명';

COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.prd_de IS '수록시점';

COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.dt IS '수치 값';

COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.lst_chn_de IS ' 데이터별 최종 수정일';
COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.src_latest_chn_dt IS ' 수집기관 최종 자료갱신일';

COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.created_at IS '레코드 생성 시각';
COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.updated_at IS '레코드 수정 시각';
COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.created_by IS '데이터 생성자 (SYS-BACH, SYS-MANUAL, BY-USER, admin name), "sys_work_type" comm code 참조';
COMMENT ON COLUMN public.stats_dis_fclty_welfare_usage.updated_by IS '데이터 수정자';


-- public.stats_dis_fclty_welfare_usage foreign keys

ALTER TABLE public.stats_dis_fclty_welfare_usage ADD CONSTRAINT fk_st_dis_fclty_welfare_usage FOREIGN KEY (src_data_id) REFERENCES public.stats_src_data_info(src_data_id);



