키워드 테이블 구조
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_raw
Insert → Link 테이블 Insert - 키워드 수정:
category_raw_history
Insert →category_raw
Update - 키워드 삭제: 지원 안 함 (
is_active=false
로만 처리) - 링크 테이블: 필요 시 자유롭게 Insert/Update/Delete 가능
운영 고려
- 대용량: 인덱스, 파티셔닝, 샤딩, 캐싱(검색 엔진) 등 적용
- 즐겨찾기, 권한, 태그 등 속성도 “링크 테이블”로 확장 가능
