전체 DB 테이블 및 주요 컬럼_1차
1. User (회원)
- user_id (PK), username, password_hash, email, role(고객/기업/관리자), language_preference, created_at 등
2. Company (기업 계정)
- company_id (PK), name, contact_email, admin_user_id (FK), created_at
3. Manufacturer (제조사)
- manufacturer_id (PK), name, contact_info
4. Product (제품)
- product_id (PK), manufacturer_id (FK), model_name, product_category, qr_code, released_at 등 기본 정보
5. ProductSpecification (제품 상세 스펙)
- spec_id (PK), product_id (FK), spec_key (예: 크기, 소비전력), spec_value, unit, description 등
6. Manual (매뉴얼/PDF문서)
- manual_id (PK), product_id (FK), version, language, upload_at, file_path, is_latest, embedding_index, chunk_structure(JSON), vector_db_type, embedding_status
7. FAQ (자주 묻는 질문)
- faq_id (PK), product_id (FK), question_text, answer_text, last_updated
8. ChatbotSession (챗봇 대화 세션)
- session_id (PK), user_id (FK), product_id (FK), started_at, ended_at
9. ChatMessage (질문/답변)
- message_id (PK), session_id (FK), sender_type(user/bot), content(TEXT/MEDIUMTEXT), reference_source, created_at
10. BotFeedback (챗봇 답변 평가)
- feedback_id (PK), message_id (FK), user_id (FK), product_id (FK), is_helpful(Y/N), given_at
11. InstallationSpace (설치 공간 정보)
- space_id (PK), user_id (FK), input_type(photo/dimension), photo_url, dimensions(JSON), submitted_at
12. SimulationResult (설치 시뮬 결과)
- result_id (PK), space_id (FK), product_id (FK), can_fit(Y/N), details(JSON), created_at
13. ProductRecommendation (제품 추천/비교 요청)
- rec_id (PK), user_id (FK), product_id (FK), target_category, comparison_criteria, result_json, created_at
14. DocumentUpdateLog (문서 갱신 이력)
- update_id (PK), product_id (FK), manual_id (FK), updated_by(user_id, FK), update_type, updated_at
15. UsageAnalytics (사용 데이터 분석)
- analytic_id (PK), type(chat/install/recommendation), user_id(nullable), company_id(nullable), product_id(nullable), metadata(JSON), created_at
16. QueryFeedback (질문 개선 및 피드백)
- feedback_id (PK), query_id (FK), requester_id (FK), feedback_text, status, created_at, updated_at
17. FeedbackHistory (피드백 변경 이력)
- history_id (PK), feedback_id (FK), action, old_value, new_value, changed_by(FK), changed_at
각 테이블 필수 속성 안내
- 모든 객체에 PK(고유ID)는 기본
- 시간 정보(created_at, updated_at) 필수
- 외래키(FK)는 명시적으로 연결
- 확장 필요시 JSON 필드를 활용(예: dimensions, details, result_json)
→ 질문 테이블 하나로 묶기
→ 기능 구현 로직상 공간 계산 db 필요없음
목적 -> llm 과부하 방지
제품명, 버전, 간단한 스펙, 질문, 답
context caching
https://brunch.co.kr/@topasvga/5211
%