PROJECT MASTER ver 4.0 데이터베이스 테이블 명세서

PostgreSQL (ver4 스키마) 물리 설계 명세 및 컬럼 바인딩 상세 설명서

본 명세서는 ver4_init_schema.sql 물리 DDL 기준 및 ver.2 통합 관리자 시스템 설계를 전적으로 준수하여 작성된 전체 19개 테이블(ver 2.0 추가 테이블 5개 포함)의 스펙 및 맵 구성서입니다. 개발 및 테스트 용도의 분기 테이블(_test_tb_project, _test_tb_data, _test_tb_log, _test_tb_click_log)은 원본 테이블과 물리적 스키마(컬럼명, 데이터 타입)가 100% 동일하게 복사되어 구동됩니다.

1. 사용자 계정 및 프로젝트 권한 영역

tb_user 사용자 마스터
사용자 계정 정보 관리
시스템 로그인 계정 정보를 관리하며 Sentinel SSO(단일 로그인) 연동 정보, 즐겨찾기 북마크 및 임직원 직급 등의 정보를 보관합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
user_id VARCHAR(50) Primary Key 사용자 로그인 ID (예: test_user, admin)
user_nm VARCHAR(100) Not Null 사용자 실명
user_pw VARCHAR(255) Not Null 단방향 암호화 처리된 계정 패스워드
company VARCHAR(100) - 소속 기관/회사 명칭 (예: 한맥기술)
dept VARCHAR(100) - 소속 부서/팀 명칭 (예: 개발본부)
position VARCHAR(50) - 임직원 직급 (예: 부장, 차장)
"group" VARCHAR(50) - 계정 그룹 (예: dev, super, general)
bookmark TEXT - 개인화 즐겨찾기/북마크 폴더 JSON 설정 구문
is_resigned BOOLEAN Default: FALSE 퇴사 여부 및 계정 강제 잠금 토글
create_date TIMESTAMP Default: NOW() 계정 등록 일시
tb_project 프로젝트 마스터
현장/공구 기본 마스터 정의
수행 중이거나 관리 대상인 토목/건축 현장 및 공구 프로젝트 리스트를 정의합니다.
_test_tb_project 테이블은 본 테이블의 스키마를 복사하여 구동합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
project_id VARCHAR(50) Primary Key 프로젝트 고유 식별 코드 (예: PM_TEST_01)
user_id VARCHAR(50) FK (tb_user) 해당 프로젝트 총괄 책임 관리자 ID
category VARCHAR(50) - 프로젝트 분류 카테고리 (tdc, gpd, bimproject, overseas)
project_nm VARCHAR(255) Not Null 현장 공식 명칭 (예: 한국 가상 교량 건설 프로젝트)
short_nm VARCHAR(100) - 프로젝트 축약명 (예: 가상교량)
project_type VARCHAR(50) - 공개 구분 분류 유형 (예: public, private)
step VARCHAR(50) - 현장 진행 단계 (예: 기획, 설계, 시공)
emp_map VARCHAR(255) - 현장 인력 배치도 정적 이미지 스토리지 키
flyto VARCHAR(255) - 3D Cesium 카메라 자동 이동용 고도/좌표 문자열
show_in_index BOOLEAN Default: TRUE 메인 포털 인덱스 화면 노출 여부
is_active BOOLEAN Default: TRUE 프로젝트 운영 활성화 여부 (비활성 시 사용자 진입 차단)
banner_notice TEXT - 대시보드 상단 텍스트 마르퀴 띠배너 공지사항 내용
lon DOUBLE PRECISION - 지도상 대표 중심 위치 경도(Longitude)
lat DOUBLE PRECISION - 지도상 대표 중심 위치 위도(Latitude)
height DOUBLE PRECISION - 3D 지도 대표 카메라 초기 고도(Height)
overview BOOLEAN Default: TRUE 메뉴 LNB '과업개요' 탭 활성화 여부
official_doc BOOLEAN Default: TRUE 메뉴 LNB '공문' 탭 활성화 여부
gsim BOOLEAN Default: TRUE 메뉴 LNB '위치기반모델' 탭 활성화 여부
storage_byte BIGINT Default: 10 현장별 스토리지 최대 제한 용량 (기본 10GB 단위 저장)
create_date TIMESTAMP Default: NOW() 프로젝트 레코드 최초 등록 일시
tb_permission 프로젝트별 사용자 권한 등급
현장별 세부 접근 제어
개별 프로젝트 내에서 유저가 행사할 수 있는 권한 레벨 상수를 복합 기본키로 식별하여 저장합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
project_id VARCHAR(50) PK / FK (tb_project) 프로젝트 마스터 외래키 참조 (종속 삭제 연동)
user_id VARCHAR(50) PK / FK (tb_user) 사용자 마스터 외래키 참조 (종속 삭제 연동)
lev INTEGER Not Null Default: 1 권한 등급값 (Owner=255, Sub-Master/관리=7, Worker/쓰기=4, Viewer/읽기=1)
tb_user_setting 사용자 개인화 설정
사용자 환경 옵션 저장
공문 분석 탭 등에서 활용되는 AI 요약 옵션 및 유저의 편의 설정 상태값을 기록합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
project_id VARCHAR(50) PK / FK (tb_project) 프로젝트 마스터 외래키 참조 (종속 삭제 연동)
user_id VARCHAR(50) PK / FK (tb_user) 사용자 마스터 외래키 참조 (종속 삭제 연동)
doc_option_instructions BOOLEAN Default: FALSE 공문 AI 요약 시 지시 사항 적용 여부 플래그
doc_option_summary BOOLEAN Default: FALSE 공문 AI 요약 결과 자동 팝업 노출 여부 플래그

2. 프로젝트 대시보드 및 과업 세부 명세 영역

tb_overview 대시보드 과업 개요 정보
프로젝트 기본 정보 대시보드 표출 데이터
공사 계약 범위, 수주 정보, 발주기관, PM 성명, 시차 오프셋 등 과업개요 메인화면에 시각화될 종합 데이터를 포괄 저장합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
project_id VARCHAR(50) Primary Key / FK (tb_project) 프로젝트 마스터 외래키 참조 (종속 삭제 연동)
project_no VARCHAR(100) - 사업 공식 계약 번호 (예: PRJ-2026-001)
business_purpose TEXT - 사업 추진 목적 및 핵심 의의
location_img VARCHAR(255) - 현장 위치도 이미지 파일의 스토리지(MinIO) 보관 key
overview_img VARCHAR(255) - 현장 개요도 이미지 파일의 스토리지(MinIO) 보관 key
continent VARCHAR(50) - 대상 현장 소속 대륙 (예: 아시아, 중동)
performance_area VARCHAR(100) - 실제 과업 수행 행정 구역/지역
reference_area VARCHAR(100) - 과업 관련 보조 참조 구역/지역
facility_size_overview TEXT - 현장 시설물 구조 규모에 대한 종합 요약 구문
task_nm_kr VARCHAR(255) - 국문 공식 과업 명칭 (예: 가상교량 건설 관리 용역)
task_nm_en VARCHAR(255) - 영문 공식 과업 명칭
task_purpose TEXT - 과업 수행 목적 명세
task_type VARCHAR(100) - 용역/설계 과업의 형태 구분
client VARCHAR(255) - 공식 발주기관/발주처 사명 (예: 서울지방국토관리청)
financial VARCHAR(255) - 사업 재원 금융 조달방식 및 은행명
financial_country VARCHAR(100) - 보증서 발급 금융 참여 보증 국가
bid VARCHAR(100) - 입찰 방식 형태 (예: 종합심사낙찰제)
selection_method VARCHAR(100) - 업체 선정 세부 규정 방식
joint_contract_nm TEXT - 공동수급 컨소시엄 구성 도급사 명칭 리스트
joint_contract_shareratio VARCHAR(100) - 도급 지분율 (예: 한맥 60%, 공동 40%)
contract_amount NUMERIC(20, 2) - 원화 기준 계약 총액
foreign_currency_amount NUMERIC(20, 2) - 외화 기준 계약 총액 (달러, 유로화 등)
contract_date VARCHAR(50) - 사업 최초 계약 체결 일자
commencement_date VARCHAR(50) - 실제 공사/용역 착수 일자 (Commencement Date)
original_completion_date VARCHAR(50) - 사업 최초 계약상 준공 예정일
completion_date VARCHAR(50) - 변경/실제 최종 준공 일자
projectmanager_nm VARCHAR(100) - 총괄 책임 PM 인명 (예: 홍길동 PM)
manager_nm VARCHAR(100) - 부책임자/담당자 실무 관리 직원명
nation_nm VARCHAR(100) - 현장 건설 국가 명칭 (예: 한국)
client_origin VARCHAR(100) - 발주처 국적 및 출처 구분
support_department VARCHAR(100) - 본사 과업 지원 주관 부서
support_manager_nm VARCHAR(100) - 지원부서 담당 실무 책임자명
representative_company VARCHAR(255) - 대표 공동수급 주간사명
order_size_krw NUMERIC(20, 2) - 원화 수주 규모 금액
order_size_usd NUMERIC(20, 2) - 달러(USD) 기준 수주 규모 금액
scheuled_commencement_date VARCHAR(50) - 예정되어 있는 착수 일자
contract_period VARCHAR(100) - 계약 이행 기간 범위 텍스트
abbreviated_name VARCHAR(100) - 과업의 단축된 대외 명칭
department VARCHAR(100) - 주관 실행 부서
data_size TEXT Default: '[0]' JSON 배열 규격 폴더별 누적 용량 메타데이터
issue TEXT - 사업 추진 간 직면한 주요 공사 쟁점 및 민원 이슈
currency_code VARCHAR(10) - 적용 외화 통화 단위 기호 (예: USD)
joint_contract TEXT - 공동 도급 지분율 계약 세부 내용
lead_company VARCHAR(255) - 컨소시엄 연대 대표 회사명
nation_code VARCHAR(10) - 국가 표준 식별 코드 (예: KR, US)
nation_offset VARCHAR(10) - 대시보드 헤더의 실시간 타이머 계산용 시차 정보 (예: +09:00)
tb_facility_size 시설 상세 규모
현장 구조물 세부 스펙 보관
건설 대상 교량, 터널, 도로 등 세부 공정물들의 상세 스펙 수치(연장, 두께, 면적 등)를 Key-Value 형태로 정규화하여 관리합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
facility_id SERIAL Primary Key 시설 항목 일련번호
project_id VARCHAR(50) FK (tb_project) 프로젝트 마스터 외래키 참조 (종속 삭제 연동)
title VARCHAR(100) Not Null 스펙 분류 대제목 (예: 교량 스펙, 터널 스펙)
key VARCHAR(100) Not Null 스펙 명칭 키값 (예: 총 연장, 최대 폭, 차선 수)
value VARCHAR(255) - 스펙의 실제 규격 수치값 (예: 1,200 m, 4차로)
tb_task_history 과업 변경 및 중단 이력
용역 일정 변동 히스토리
공사 지연, 민원 해결에 따른 일시 중단 일자, 준공계 제출 지연 등 계약 기간 및 과업 지시 상의 변경 조치 이력을 순차 기록합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
task_history_id SERIAL Primary Key 이력 기록용 고유 식별 번호
project_id VARCHAR(50) FK (tb_project) 프로젝트 마스터 외래키 참조 (종속 삭제 연동)
task_order INTEGER - 변경 차수 일련번호 (1, 2, 3...)
suspension_date VARCHAR(50) - 과업/공사 일시 중단 일자 (예: 2026-03-01)
suspension_reason TEXT - 공사 일시 중단에 따른 행정적/물리적 상세 사유
resumption_date VARCHAR(50) - 과업/공사 재개 처리 일자 (예: 2026-04-15)
consultation_content TEXT - 발주청 및 관계 기관과의 협의 사항 회의록
change_date VARCHAR(50) - 최종 계약서 서류 상의 일자 변경일
tb_calendar_event 캘린더 일정 및 국가 공휴일
공정 캘린더용 스케줄 보관
개별 현장별 주요 주요 마일스톤 회의 일정(착수, 중간, 준공보고 등)과 함께, 해외 현장의 경우 시차 계산 및 공휴일 표시를 위한 기초 데이터 테이블입니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
calendar_event_id SERIAL Primary Key 일정 레코드 고유 번호
project_id VARCHAR(50) FK (tb_project) 프로젝트 마스터 외래키 참조 (종속 삭제 연동)
type VARCHAR(50) Not Null 일정 속성 종류 구분 (예: schedule, holiday)
title VARCHAR(255) Not Null 일정/휴일 타이틀 제목 (예: 1차 중간보고회, 신정)
content TEXT - 일정에 관한 세부 수행 목적 및 장소 설명
color VARCHAR(20) - 캘린더 표출용 배경색 Hex 코드 (예: #ff0000)
start_date VARCHAR(50) Not Null 일정 시작일 YYYY-MM-DD
end_date VARCHAR(50) Not Null 일정 종료일 YYYY-MM-DD
nation_nm VARCHAR(100) - 소속 공휴일 지정 대상 국가명 (예: 한국)

3. 파일 아카이브 및 백그라운드 압축 다운로드 영역

tb_data 아카이브 산출물 마스터
아카이브 폴더 트리 및 파일 구조 제어
가상 폴더 트리 구조와 파일 업로드/변환 관련 핵심 메타 정보를 저장합니다. 1행이 하나의 파일 또는 하나의 폴더를 의미합니다.
_test_tb_data 테이블은 본 테이블의 스키마를 복사하여 구동합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
data_id SERIAL Primary Key 산출물 고유 식별 번호
project_id VARCHAR(50) FK (tb_project) 소속 프로젝트 ID (종속 삭제 연동)
user_id VARCHAR(50) FK (tb_user) 최초 등록(업로드)한 사용자 ID
create_date TIMESTAMP Not Null Default: NOW() 최초 파일 업로드/폴더 생성 일시
data_permission INTEGER Default: 1 산출물 개별 조회 접근 제한 등급 레벨 상수값
bucket VARCHAR(100) - 스토리지 저장 대상 버킷명 (예: pm-test-01)
is_folder BOOLEAN Default: FALSE 폴더 여부 (true=폴더, false=파일)
is_removed BOOLEAN Default: FALSE 가상 휴지통 보관 상태 유무 플래그 (true 시 화면에서 배제)
data_depth INTEGER Default: 1 계층 트리의 깊이 단계 범위 (1 ~ 8-depth)
ext VARCHAR(50) - 파일 포맷 확장자명 (예: dwg, pdf, xlsx)
path1 ~ path8 VARCHAR(100) - 가상 계층별 경로 및 파일명의 문자열 매핑.
(예: path1='01_설계도서', path2='교량일반도.dwg' 등)
mod_date TIMESTAMP - 최근 구조/명칭 수정 처리 완료 일시
mod_user_id VARCHAR(50) - 최근 변경 조치를 수행한 사용자 ID
mod_activity VARCHAR(100) - 최근에 발생한 수정 행동 성격 코드 (예: renameTarget)
data_size BIGINT Default: 0 파일 용량 크기 (Byte 단위)
memo TEXT - 해당 파일에 붙여진 텍스트 메모 기입란
storage_type VARCHAR(20) - 스토리지 물리 분류 (ONPREMISE / CLOUD)
object_key TEXT - 실제 MinIO/S3 내의 고유 보관 object key
preview_key TEXT - 변환된 미리보기 및 썸네일용 1Page PDF 보관 key
popup_key TEXT - 통합 문서 뷰어 팝업용 전체 페이지 PDF 보관 key
ver INTEGER Default: 1 개정 버전 차수 카운팅 (버전 업로드 지원용)
folder_type VARCHAR(50) - 폴더 성격 종류 구분 (예: 보안폴더, 일반폴더)
thumbnail_size BIGINT Default: 0 미리보기 썸네일 이미지 크기 (Byte)
thumbnail_key TEXT - 썸네일 이미지 파일(png 등) 스토리지 보관 key
lon DOUBLE PRECISION - 지도 마커 연계 경도 (GSIM 모듈용)
lat DOUBLE PRECISION - 지도 마커 연계 위도 (GSIM 모듈용)
height DOUBLE PRECISION - 3D 지도 공간 정보 좌표 높이값 (GSIM 모듈용)
author_id VARCHAR(50) - 원본 산출물 최초 제작자 계정 ID
author_nm VARCHAR(100) - 원본 산출물 최초 제작자 성명
last_folder_act_date TIMESTAMP - 해당 폴더 내부의 최종 변경 활동 발생 시각
popup_size BIGINT Default: 0 뷰어용 전체 페이지 PDF 용량 (Byte)
preview_size BIGINT Default: 0 미리보기용 1페이지 PDF 용량 (Byte)
ai_summary TEXT - Gemini API 기반 생성된 문서 개요 AI 자동 요약문
tb_download_folder 폴더 백그라운드 압축 이력
비동기 BullMQ 압축 작업 상태 관리
대량 폴더/파일을 일괄 ZIP 압축 다운로드할 때 생성되는 스토리지 임시 보관 정보 및 링크 만료 일자를 기록합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
download_id SERIAL Primary Key 압축 작업 일련번호
project_id VARCHAR(50) FK (tb_project) 대상 프로젝트 식별 아이디
user_id VARCHAR(50) FK (tb_user) 압축 처리를 위임한 사용자 ID
status VARCHAR(50) - 비동기 압축 큐 상태 단계 (예: processing, completed, failed)
zip_key TEXT - 생성 완료된 임시 압축파일의 스토리지 보관 key
expire_date TIMESTAMP - 임시 압축파일 보관 디스크 소거를 위한 만료시각 (24시간 등)
made BOOLEAN Default: FALSE 비동기 압축 파일 빌드 준비 완료 여부 플래그
path TEXT - 압축을 개시한 원본 대상 가상 폴더의 최상위 경로
name TEXT - 압축된 파일에 바인딩된 기본 표출 명칭 (폴더명.zip)
create_date TIMESTAMP Default: NOW() 다운로드 요청 등록 일시

4. 수신 및 발신 공식 공문서 관리 영역

tb_official_doc_file 공문서 상세 및 AI 요약
공문 수발신 대장 및 메타데이터 정보
공문서의 제목, 날짜, 수발신처를 관리하며, OCR 파싱 및 Gemini AI가 수행한 주요 의사결정 요약 텍스트를 구조적으로 통합 보관합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
doc_id INTEGER Primary Key 공문서 일련번호 (시퀀스 seq_tb_official_doc_file 연동)
project_id VARCHAR(50) FK (tb_project) 소속 프로젝트 ID (종속 삭제 연동)
uploader VARCHAR(50) FK (tb_user) 공문서 업로더 계정 ID
create_date TIMESTAMP Default: NOW() 공문서 파일 업로드 등록 일시
permission INTEGER Default: 1 공문서에 부여된 읽기/조회 보안 권한 등급
bucket VARCHAR(100) - 스토리지 저장 버킷명
file_path TEXT - 공문 원본 파일이 업로드된 물리 스토리지 보관 경로
ext VARCHAR(50) - 원본 공문 파일 확장자 (소문자 규격)
doc_direction VARCHAR(20) - 공문 교환 방향성 구분 (수신 / 발신)
doc_number VARCHAR(100) - 공식 접수/발송용 공문 문서 번호 (예: 서울국토-2026-012)
doc_date VARCHAR(50) - 공문서 상의 기안/체결 일자 (YYYY-MM-DD 형식)
recipient_org VARCHAR(255) - 공문 수신 수석 기관 명칭 (예: 한맥기술)
recipient_org_abbr VARCHAR(100) - 수신 기관 약어 (예: 한맥)
sender_org VARCHAR(255) - 공문 발송 원천 기관 명칭 (예: 서울지방국토관리청)
sender_org_abbr VARCHAR(100) - 발송 기관 약어 (예: 서울국토청)
doc_title TEXT - 공문서 상의 원본 기안문 제목
doc_title_summary TEXT - Gemini AI가 함축 요약한 직관적 제목
doc_content_summary TEXT - Gemini AI가 핵심 조작 및 지시 사항 중심으로 파싱한 본문 요약문
doc_related_docs TEXT - 공문 내부 연관/참조 처리된 다른 공문서 번호 내역
doc_type VARCHAR(50) - 공문서 종류 구분 (예: 공문, 지시문, 보고서)
doc_category VARCHAR(100) - 행정 업무별 세부 서류 분류 카테고리
attachment_title TEXT - 공문과 동봉 첨부된 첨부파일 제목 리스트
attachment_count INTEGER Default: 0 첨부된 보조 문서 파일 개수 카운트
doc_memo TEXT - 담당자 기입 관리용 요약 비고 메모
doc_manager VARCHAR(100) - 해당 공문 책임 지정 처리 실무자 성명
doc_label VARCHAR(100) - 공문 태그/분류 라벨
mod_date TIMESTAMP - 공문 메타 정보 최근 변경 완료 시각
mod_user_id VARCHAR(50) - 공문 정보를 마지막으로 변경한 유저 ID
mod_activity VARCHAR(100) - 마지막 변경 조치 내용 코드
data_size BIGINT Default: 0 원본 공문 PDF 파일 용량 (Byte)
storage_type VARCHAR(20) - 스토리지 타겟 (ONPREMISE / CLOUD)
object_key TEXT - 실제 스토리지 내 공문 원본 보관 key
preview_key TEXT - 1-Page 요약 썸네일 미리보기용 PDF key
popup_key TEXT - 전체 뷰어 확인용 PDF key
ver INTEGER Default: 1 문서 이력 버전
group_id VARCHAR(50) - 동일 묶음 발송 공문서 그룹 번호 ID
is_aiused BOOLEAN Default: FALSE Gemini AI 자동 분석/요약 수행 완료 여부 플래그
popup_size BIGINT Default: 0 뷰어용 전체 페이지 PDF 용량 (Byte)
preview_size BIGINT Default: 0 미리보기용 1페이지 PDF 용량 (Byte)
tb_official_doc_company 공문 교환 회사 기관 목록
공문 수발신 참여 주체 목록
개별 프로젝트에 공문서를 주고받는 정부 기관, 지자체, 감리단, 도급사 등의 업체 리스트와 성격을 지정 보관합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
company_id SERIAL Primary Key 업체 일련번호 (복합 PK 사용)
project_id VARCHAR(50) PK / FK (tb_project) 프로젝트 마스터 외래키 참조 (종속 삭제 연동)
company_name VARCHAR(255) Not Null 공식 업체 및 기관 명칭 (예: 서울지방국토관리청)
company_type VARCHAR(100) - 기관 성격 구분 (예: 발주처, 도급사, 감리단)
company_role VARCHAR(100) - 공문 매핑상의 수발신 역할군 구분 (예: 기준, 상대기관)

5. 시스템 모니터링 및 활동 감사 로그 영역

tb_log 파일 조작 감사 로그
보안 감사 활동 추적
파일 업로드, 다운로드, 폴더 삭제 등 데이터 위/변조 가능 활동을 발생 IP, 일시와 함께 추적 기록하는 보안 로그 테이블입니다.
_test_tb_log 테이블은 본 테이블의 스키마를 복사하여 구동합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
log_id SERIAL Primary Key 로그 감사 고유 번호
project_id VARCHAR(50) FK (tb_project) 이벤트가 발생한 소속 프로젝트 ID (종속 삭제 연동)
activity VARCHAR(100) Not Null 보안 감사 대상 활동 종류 식별자 (예: uploadData_file, createFolder, removeTarget)
user_id VARCHAR(50) FK (tb_user) 활동을 유발시킨 사용자 계정 ID
user_ip VARCHAR(50) - 행위를 유발한 접속지 IP 주소 (IPv4/IPv6)
log_date TIMESTAMP Default: NOW() 활동 유발 저장 기록 시각
path_arr TEXT[] - 조작한 파일들의 가상 경로 리스트 배열 (예: {"/01_설계도서/구조계산서.pdf"})
data_id_arr INTEGER[] - 조작한 대상 파일의 data_id 일련번호 배열 (예: {15, 16})
tb_click_log 사용자 UI 요소 클릭 로그
사용자 행동 흐름 통계 수집
통합 문서 뷰어 진입, 썸네일 노출 요청, 탭 전환 등의 사용자 비활동/활동 클릭 이벤트를 통계 목적으로 수집합니다.
_test_tb_click_log 테이블은 본 테이블의 스키마를 복사하여 구동합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
click_log_id SERIAL Primary Key 클릭 이력 고유 ID
project_id VARCHAR(50) FK (tb_project) 클릭이 터진 프로젝트 식별 ID (종속 삭제 연동)
activity VARCHAR(100) Not Null 수집된 클릭 활동 액션 코드 (예: viewThumbnail, tabChange)
user_id VARCHAR(50) FK (tb_user) 클릭을 행한 사용자 ID
user_ip VARCHAR(50) - 사용자 접속 단말 IP 주소
log_date TIMESTAMP Default: NOW() 클릭 활동 기록 시각
path_arr TEXT[] - 클릭에 해당하는 산출물 파일 경로 배열
data_id_arr INTEGER[] - 클릭된 파일의 일련번호 (data_id) 배열

6. 통합 관리자 대시보드 추가 테이블

code_master 공통 코드 대분류 마스터
공통 코드 대분류 그룹 관리
시스템 전반에서 활용되는 공통 코드의 대분류(분류 ID 및 명칭) 정보를 관리합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
main_code VARCHAR(30) Primary Key / Not Null 대분류 분류 코드 식별자 (예: PROJECT_CATEGORY, USER_GROUP)
main_code_nm VARCHAR(100) Not Null 대분류 분류 명칭 (예: 프로젝트 구분, 사용자 그룹)
use_yn CHAR(1) Default: 'Y' 사용 여부 ('Y' / 'N')
rmk VARCHAR(255) - 비고 및 대분류에 대한 부가 설명
code_detail 공통 세부 코드
공통 코드 소분류 세부 설정값 관리
대분류에 종속되는 세부 소분류 코드값 및 한글 코드명, 정렬 순서를 관리합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
main_code VARCHAR(30) PK / FK (code_master) 대분류 분류 식별자 (종속 삭제 ON DELETE CASCADE 연동)
sub_code VARCHAR(30) PK / Not Null 소분류 상세 코드값 (예: tdc, gpd, super, worker)
base_code VARCHAR(61) Not Null / UNIQUE 대/소분류 접합 고유 코드 (main_code || '_' || sub_code 형태)
code_nm VARCHAR(100) Not Null 상세 세부 코드 한글명 (예: 수퍼관리자, 일반작업자)
sort_ord INTEGER Default: 1 화면 및 그리드 노출 정렬 순서
use_yn CHAR(1) Default: 'Y' 사용 여부 ('Y' / 'N')
rmk VARCHAR(255) - 비고 및 코드 상세 부가 설명
tb_system_policy 시스템 공통 자동 보존/삭제 정책
전체 현장 대상 글로벌 보존 임계치 통제
개별 프로젝트 단위 제어가 아닌 시스템 전체 공통으로 일괄 적용될 파일 삭제 보존 기준 임계치를 단일 레코드로 저장 관리합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
policy_id SERIAL Primary Key 정책 설정 번호
policy_key VARCHAR(50) UNIQUE / Not Null 정책 설정 고유 식별 키 (예: GLOBAL_DELETE_POLICY)
limit_file_count INTEGER Not Null 자동 보존할 최소 안전 유지 파일 개수 기준 (숫자)
limit_days INTEGER Not Null 자동 보관/삭제 처리 기준 경과 보존 일수 (숫자)
is_active BOOLEAN Default: TRUE 글로벌 정책 작동 활성화 여부
upd_date TIMESTAMP Default: NOW() 최종 정책 기준 변경 및 저장 시각
tb_banner_notice 실시간 배너 공지 이력
대시보드 배너 송출 및 공지이력 관리
각 프로젝트 현장(또는 전체)에 전송할 배너 공지 내용, 시작/종료일 및 송출 상태 이력을 보관합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
banner_id SERIAL Primary Key 배너 공지 일련번호
project_id VARCHAR(50) FK (tb_project) 배너 송출 대상 프로젝트 식별자 (전체 프로젝트일 경우 'all' 기입)
reg_date DATE Not Null 배너 공지 최초 등록/작성일 (임의 지정 가능)
start_date DATE Not Null 공지 송출 시작 예정일
end_date DATE Not Null 공지 송출 종료 예정일
notice_text TEXT Not Null 흐르는 자막으로 출력될 배너 공지 내용 본문
status_code VARCHAR(61) FK (code_detail) 송출 상태 구분 코드 (NOTICE_STATUS_active, scheduled, expired)
tb_auto_clean_log 배치 스케줄러 자동 삭제 처리 로그
정기 스케줄러 가동 감사 로그 보관
정기 배치 스케줄러 작동으로 스토리지 자동 청소가 구동되었을 때의 상세 처리 일시 및 결과를 보관합니다.
컬럼명 (Column) 타입 (Type) 제약조건 설명 및 바인딩 예시
clean_log_id SERIAL Primary Key 청소 처리 결과 고유 번호
clean_date TIMESTAMP Default: NOW() 배치 스케줄러 가동 성공 및 로그 저장 일시
project_id VARCHAR(50) - 청소 처리된 현장 ID (공통 정책 저장 이력일 시 'SYSTEM' 기입)
path TEXT - 청소/삭제 처리가 수행된 아카이브 폴더 경로
rule TEXT - 당시 실행된 정책 기준(임계치 수량, 경과 기한) 요약 내용
result TEXT - 삭제된 총 파일 건수 및 디스크 회수 용량 등 결과 리포트