96 lines
4.9 KiB
Markdown
96 lines
4.9 KiB
Markdown
---
|
|
type: concept
|
|
status: stable
|
|
related_pages: ["[[B03_FileInput/B03_backend]]", "[[B04_wf1_Surface/B04_backend]]"]
|
|
last_updated: 2026-07-12
|
|
source: raw/guidelines/db_schema.md
|
|
---
|
|
|
|
# DB: 파일/지표면분석 테이블
|
|
|
|
← [[overview]]
|
|
|
|
## upload_sessions (업로드 세션)
|
|
| 컬럼 | 타입 | Null | Key | Default / Extra |
|
|
|---|---|---|---|---|
|
|
| `id` | `varchar(36)` | NO | PRI | 세션 UUID |
|
|
| `project_id` | `varchar(36)` | NO | MUL | FK→projects.id |
|
|
| `original_filename` | `varchar(255)` | NO | | 원본 파일명 |
|
|
| `file_size_bytes` / `chunk_size_bytes` | `bigint(20)` | NO | | 파일크기 / 청크크기 |
|
|
| `total_chunks` / `completed_chunks` | `int(11)` | - | | 전체 청크수 / 완료 청크수 |
|
|
| `status` | `enum('PENDING','IN_PROGRESS','COMPLETED','FAILED')` | YES | MUL | `PENDING` |
|
|
| `created_at` / `updated_at` | `timestamp` | YES | | 생성 / 최종수정 일시 |
|
|
|
|
## upload_chunks (업로드 청크 데이터)
|
|
| 컬럼 | 타입 | Null | Key | Default / Extra |
|
|
|---|---|---|---|---|
|
|
| `id` | `int(11)` | NO | PRI | `auto_increment` |
|
|
| `session_id` | `varchar(36)` | NO | MUL | FK→upload_sessions.id |
|
|
| `chunk_index` | `int(11)` | NO | | 청크 인덱스 (0, 1, 2...) |
|
|
| `chunk_hash` | `varchar(64)` | YES | | 청크 검증용 체크섬 |
|
|
| `size_bytes` | `bigint(20)` | NO | | 청크 용량 |
|
|
| `stored_at` | `varchar(255)` | YES | | 임시 파일 저장 경로 |
|
|
| `completed_at` | `timestamp` | YES | MUL | 완료 일시 |
|
|
|
|
## input_files (입력 원본 파일)
|
|
| 컬럼 | 타입 | Null | Key | Default / Extra |
|
|
|---|---|---|---|---|
|
|
| `id` | `int(11)` | NO | PRI | `auto_increment` |
|
|
| `project_id` | `char(36)` | NO | MUL | FK→projects.id |
|
|
| `file_type` | `varchar(50)` | YES | | `las`/`tif`/`prj`/`tfw`/`dxf` 등 |
|
|
| `original_filename` / `raw_file_path` | `varchar` | NO | | 파일명 / storage 상대경로 |
|
|
| `file_size_mb` | `float` | YES | | 파일 크기 (MB) |
|
|
| `upload_by` / `upload_at` | - | - | MUL | 업로드 유저 FK / 일시 |
|
|
| `crs_epsg` | `int(11)` | YES | | EPSG 좌표계 정보 |
|
|
| `metadata` | `longtext` | YES | | 헤더/포인트수 등 분석 JSON |
|
|
| `status` | `varchar(50)` | YES | | `UPLOADED` ➡️ `PROCESSED` ➡️ `ARCHIVED` |
|
|
|
|
## processed_point_cloud (필터/변환 포인트클라우드)
|
|
| 컬럼 | 타입 | Null | Key | Default / Extra |
|
|
|---|---|---|---|---|
|
|
| `id` | `int(11)` | NO | PRI | `auto_increment` |
|
|
| `input_file_id` / `project_id` | - | NO | MUL | FK→input_files / projects |
|
|
| `process_type` | `varchar(50)` | YES | | 변환 필터 분류 |
|
|
| `processed_file_path` / `converted_file_path` | `varchar` | YES | | 저장 경로 / PLY/LAZ 경로 |
|
|
| `converted_format` | `varchar(50)` | YES | | 변환 포맷 |
|
|
| `point_count` | `int(11)` | YES | | 포인트 개수 |
|
|
| `min_z` / `max_z` / `mean_z` | `float` | YES | | 고도 최저 / 최고 / 평균 |
|
|
| `x_min` ~ `y_max` | `float` | YES | | X/Y 좌표 바운딩 박스 범위 |
|
|
| `density_per_sqm` | `float` | YES | | ㎡당 점 밀도 |
|
|
| `classification_summary` | `longtext` | YES | | ground/unclassified 통계 |
|
|
| `processing_params` | `longtext` | YES | | 분석 파라미터 JSON |
|
|
| `processed_at` / `status` | - | - | | 변환 일시 / `PROCESSING`\|`COMPLETE`\|`FAILED` |
|
|
|
|
## surface_models (지표면 모델 및 등고선)
|
|
| 컬럼 | 타입 | Null | Key | Default / Extra |
|
|
|---|---|---|---|---|
|
|
| `id` | `int(11)` | NO | PRI | `auto_increment` |
|
|
| `project_id` | `char(36)` | NO | MUL | FK→projects.id |
|
|
| `model_type` | `varchar(50)` | YES | | `dem_grid`/`tin`/`mesh`/`contour` |
|
|
| `source_file_id` / `processed_cloud_id` | `int(11)` | YES | MUL | FK→input_files / processed |
|
|
| `status` | `varchar(50)` | YES | | `PROCESSING` ➡️ `COMPLETE` / `FAILED` |
|
|
| `crs_epsg` / `resolution_m` | - | YES | | EPSG 좌표 / DEM 격자 해상도 |
|
|
| `model_file_path` | `varchar(500)` | YES | | 스토리지 상대 경로 |
|
|
| `generation_params` | `longtext` | YES | | 격자화 알고리즘 인자 JSON |
|
|
| `created_at` / `completed_at` | `timestamp` | - | | 생성 / 완료 일시 |
|
|
|
|
## terrain_layers (지형 레이어)
|
|
| 컬럼 | 타입 | Null | Key | Default / Extra |
|
|
|---|---|---|---|---|
|
|
| `id` | `int(11)` | NO | PRI | `auto_increment` |
|
|
| `surface_model_id` | `int(11)` | NO | MUL | FK→surface_models.id |
|
|
| `layer_name` | `varchar(100)` | YES | | 레이어 영문/한글 식별자 |
|
|
| `geometry_type` | `varchar(50)` | YES | | `POINTCLOUD`/`GRID`/`MESH`/`CONTOUR` |
|
|
| `layer_file_path` | `varchar(500)` | YES | | 개별 레이어 실 파일 경로 |
|
|
| `file_format` / `file_size_mb` | - | YES | | 포맷 (ply, tfw, las 등) / 크기 |
|
|
| `statistics` | `longtext` | YES | | 통계 수치 JSON |
|
|
| `created_at` | `timestamp` | NO | | 생성 일시 |
|
|
|
|
## input_files.status 값
|
|
`UPLOADED → PROCESSED → ARCHIVED`
|
|
|
|
## surface_models.status / processed_point_cloud.status 값
|
|
`PROCESSING → COMPLETE / FAILED`
|
|
|
|
관련 함수 위치 → [[B04_wf1_Surface/B04_db]], 사용 라이브러리 → [[dependencies]]
|