Files
Aislo/docs/wiki/concepts/db_schema/route_profile.md
T
2026-07-15 18:33:33 +09:00

70 lines
3.3 KiB
Markdown

---
type: concept
status: stable
related_pages: ["[[B05_wf2_Route/B05_backend]]", "[[B06_wf3_ProfileCross/B06_backend]]"]
last_updated: 2026-07-12
source: raw/guidelines/db_schema.md
---
# DB: 경로/종횡단 테이블
← [[overview]]
## routes (노선 경로)
| 컬럼 | 타입 | Null | Key | Default / Extra |
|---|---|---|---|---|
| `id` | `int(11)` | NO | PRI | `auto_increment` |
| `project_id` | `char(36)` | NO | MUL | FK→projects.id |
| `surface_model_id` | `int(11)` | YES | MUL | FK→surface_models.id |
| `status` | `varchar(50)` | YES | | `DRAFT` ➡️ `CONFIRMED` ➡️ `ARCHIVED` |
| `start_chainage_m` / `end_chainage_m` | `float` | YES | | 시작 시점 / 끝 시점 연장(m) |
| `total_length_m` | `float` | YES | | 총 연장(m) |
| `grade_percent` | `longtext` | YES | | 경사도 정보 JSON |
| `constraints` / `algorithm_params` | `longtext` | YES | | 회피 구역 JSON / 알고리즘 가중치 파라미터 JSON |
| `route_data_path` | `varchar(500)` | YES | | 노선 데이터 (GeoJSON) 파일 경로 |
| `computed_at` / `created_at` | - | - | | 연산 완료 일시 / 생성 일시 |
## route_points (경로 좌표점)
| 컬럼 | 타입 | Null | Key | Default / Extra |
|---|---|---|---|---|
| `id` | `int(11)` | NO | PRI | `auto_increment` |
| `route_id` | `int(11)` | NO | MUL | FK→routes.id |
| `chainage_m` | `float` | YES | | 시점 거리(m) |
| `elevation_m` / `slope_percent` | `float` | YES | | 표고(m) / 종단 경사율(%) |
| `sequence_num` | `int(11)` | YES | | 점 순서 |
## route_statistics (노선 통계)
| 컬럼 | 타입 | Null | Key | Default / Extra |
|---|---|---|---|---|
| `id` | `int(11)` | NO | PRI | `auto_increment` |
| `route_id` | `int(11)` | NO | MUL | FK→routes.id |
| `min_slope` / `max_slope` / `mean_slope` | `float` | YES | | 최저 / 최고 / 평균 경사(%) |
| `cut_volume_m3` / `fill_volume_m3` | `float` | YES | | 절토량(㎥) / 성토량(㎥) |
| `tree_cutting_volume` / `cost_score` | `float` | YES | | 벌채량 / 평점 비용 스코어 |
## longitudinal_sections (종단면 설계)
| 컬럼 | 타입 | Null | Key | Default / Extra |
|---|---|---|---|---|
| `id` | `int(11)` | NO | PRI | `auto_increment` |
| `project_id` / `route_id` | `char(36)` / `int` | NO | MUL | FK→projects / routes |
| `computed_at` | `timestamp` | YES | | 종단 계산 일시 |
| `data` | `longtext` | YES | | 지반고/계획고/구배 등 설계 데이터 JSON |
| `longitudinal_file_path` | `varchar(500)` | YES | | 종단도면 캐드 파일 경로 |
| `status` | `varchar(50)` | YES | | `DRAFT` / `CONFIRMED` |
## cross_sections (횡단면 설계)
| 컬럼 | 타입 | Null | Key | Default / Extra |
|---|---|---|---|---|
| `id` | `int(11)` | NO | PRI | `auto_increment` |
| `project_id` / `route_id` | `char(36)` / `int` | NO | MUL | FK→projects / routes |
| `chainage_m` / `sequence_num` | - | YES | | 측정 체인 거리(m) / 단면 순서 |
| `data` | `longtext` | YES | | 좌우 사면 경사, 폭, 절성토 단면적 JSON |
| `cross_section_file_path` | `varchar(500)` | YES | | 횡단도면 캐드 파일 경로 |
| `status` | `varchar(50)` | YES | | `DRAFT` / `CONFIRMED` |
## routes.status 흐름
`DRAFT → CONFIRMED → ARCHIVED`
## cross_sections.data.structures
횡단면 하나에 배치된 구조물 ID 배열 → [[structure_output]]#structures 참조