데이터 모델
# 데이터 모델
이 문서는 체크인된 레거시 참조 DDL 59개 테이블의 **물리 스키마**와, 컬럼
이름·애플리케이션 관례에서 추론한 **논리 연관**을 설명합니다. 참조 DDL에는
`FOREIGN KEY`와 `ON DELETE`가 없습니다. 아래 그림 모델도 물리 외래키를
주장하지 않습니다.
`g5nx-diagram` 펜스 본문은 허용된 모델 id 하나뿐입니다. JavaScript가 켜져
있으면 문서 섬이 같은 출처 JSON을 불러 라이브 그림을 그립니다. 끄면 이
문서의 표·문장과 이스케이프된 펜스가 폴백입니다.
## 물리 스키마 탐색기
59개 테이블을 도메인으로 묶습니다. 네 개의 `g5_write_*` 테이블은 동적
`g5_write_{bo_table}` 패턴의 샘플이며, 유일한 쓰기 테이블이 아닙니다.
`bo_table`은 ASCII `[A-Za-z0-9_]{1,20}`입니다.
```g5nx-diagram
legacy-schema
```
| 도메인 | 테이블 수 | 테이블 |
| --- | ---: | --- |
| 사이트 | 3 | `g5_config`, `g5_menu`, `g5_new_win` |
| 회원 | 6 | `g5_auth`, `g5_cert_history`, `g5_login`, `g5_member`, `g5_member_cert_history`, `g5_member_social_profiles` |
| 포인트 | 1 | `g5_point` |
| 게시판 | 12 | `g5_autosave`, `g5_board`, `g5_board_file`, `g5_board_good`, `g5_board_new`, `g5_group`, `g5_group_member`, `g5_scrap`, `g5_write_free`, `g5_write_gallery`, `g5_write_notice`, `g5_write_qa` |
| 콘텐츠 | 8 | `g5_content`, `g5_faq`, `g5_faq_master`, `g5_poll`, `g5_poll_etc`, `g5_popular`, `g5_qa_config`, `g5_qa_content` |
| 메시징 | 2 | `g5_mail`, `g5_memo` |
| 접속 통계 | 2 | `g5_visit`, `g5_visit_sum` |
| 식별자 | 1 | `g5_uniqid` |
| 쇼핑몰 | 24 | `g5_shop_*` 접두 24개 |
쇼핑몰 24개: `g5_shop_banner`, `g5_shop_cart`, `g5_shop_category`,
`g5_shop_coupon`, `g5_shop_coupon_log`, `g5_shop_coupon_zone`,
`g5_shop_default`, `g5_shop_event`, `g5_shop_event_item`,
`g5_shop_inicis_log`, `g5_shop_item`, `g5_shop_item_option`,
`g5_shop_item_qa`, `g5_shop_item_relation`, `g5_shop_item_stocksms`,
`g5_shop_item_use`, `g5_shop_order`, `g5_shop_order_address`,
`g5_shop_order_data`, `g5_shop_order_delete`, `g5_shop_order_post_log`,
`g5_shop_personalpay`, `g5_shop_sendcost`, `g5_shop_wish`.
## 논리 ER (도메인 분할)
표시된 선은 추론된 논리 연관입니다 (`logical-association`,
`dynamic-table`, `prefix-convention`). 한 화면에 59개 테이블을 그리지
않습니다. 개요와 회원·게시판·쇼핑몰 상세로 나눕니다.
JSON은 `GET /api/v1/docs/diagrams/{id}`로 가져오며 success `data`는
`id`, `title`, `description`, `kind`, `model` 다섯 필드입니다. 파일
이름과 절대 경로는 없습니다.
```g5nx-diagram
legacy-erd
```
### 회원
```g5nx-diagram
legacy-erd-member
```
선택적 모델 JSON:
[/api/v1/docs/diagrams/legacy-erd-member](/api/v1/docs/diagrams/legacy-erd-member)
### 게시판
```g5nx-diagram
legacy-erd-board
```
선택적 모델 JSON:
[/api/v1/docs/diagrams/legacy-erd-board](/api/v1/docs/diagrams/legacy-erd-board)
### 쇼핑몰
```g5nx-diagram
legacy-erd-shop
```
선택적 모델 JSON:
[/api/v1/docs/diagrams/legacy-erd-shop](/api/v1/docs/diagrams/legacy-erd-shop)
## 동적 쓰기 테이블
게시판마다 `g5_write_{bo_table}` 테이블이 생깁니다. 체크인된 샘플은
`g5_write_free`, `g5_write_gallery`, `g5_write_notice`, `g5_write_qa`
네 개뿐입니다. 샘플을 전체 쓰기 테이블로 취급하지 않습니다.