키워드 테이블 구조
1. category_raw 테이블
| 컬럼명 | 설명 |
|---|---|
| id | PK, 키워드 고유 ID |
| keyword | 키워드 문자열 |
| is_active | 활성화 여부 (삭제 불가, 비활성화로만 처리) |
| created_at | 생성일시 |
| updated_at | 수정일시 |
※ 삭제 불가 (어플리케이션/DB FK 제약으로 강제)
2. category_raw_history 테이블
| 컬럼명 | 설명 |
|---|---|
| id | PK |
| raw_id | 수정된 키워드의 category_raw.id |
| before_keyword | 수정 전 키워드 |
| after_keyword | 수정 후 키워드 |
| updated_at | 수정일시 |
※ 키워드 수정 이력 기록
3. category_structure 테이블
| 컬럼명 | 설명 |
|---|---|
| raw_id | FK, category_raw.id |
| parent_id | FK, 상위 category_raw.id |
| depth | 계층 깊이 |
| language | 언어 |
※ FK(ON DELETE RESTRICT)로 raw_id, parent_id 연결
4. category_priority 테이블
| 컬럼명 | 설명 |
|---|---|
| raw_id | FK, category_raw.id |
| priority | 우선순위 |
※ FK(ON DELETE RESTRICT)
5. category_picture 테이블
| 컬럼명 | 설명 |
|---|---|
| raw_id | FK, category_raw.id |
| picture | 이미지 정보 |
※ FK(ON DELETE RESTRICT)
6. keyword_set 테이블
| 컬럼명 | 설명 |
|---|---|
| main_raw_id | FK, 메인 category_raw.id |
| related_raw_id | FK, 관련 category_raw.id |
※ FK(ON DELETE RESTRICT)
7. topic_matrix 테이블
| 컬럼명 | 설명 |
|---|---|
| title | 주제명 |
| subtitle | 부제 |
| category_raw_id | FK, category_raw.id |
| keyword_raw_id | FK, category_raw.id |
※ FK(ON DELETE RESTRICT)
데이터 입력/갱신 시나리오
- 새 키워드 추가:
category_rawInsert → Link 테이블 Insert - 키워드 수정:
category_raw_historyInsert →category_rawUpdate - 키워드 삭제: 지원 안 함 (
is_active=false로만 처리) - 링크 테이블: 필요 시 자유롭게 Insert/Update/Delete 가능
운영 고려
- 대용량: 인덱스, 파티셔닝, 샤딩, 캐싱(검색 엔진) 등 적용
- 즐겨찾기, 권한, 태그 등 속성도 “링크 테이블”로 확장 가능
