-- 382_study_concept_links.sql — 개념문서 ↔ 기출문항 링크 (이론↔문제 브리지, Stage B). -- concept_doc_id=documents.id, question_id=study_questions.id — FK 없음(hot 테이블 락 회피, 선례). -- link_source: 'embedding'(bge-m3 코사인 top-k, 주력) | 'ref'(해설 .md 참조, 후속 enrichment). -- score=코사인 유사도(0~1). UNIQUE(doc,question,source) — source별 공존 허용(재튜닝=source 전삭제 후 재삽입). CREATE TABLE IF NOT EXISTS study_concept_links ( id bigserial PRIMARY KEY, concept_doc_id bigint NOT NULL, question_id bigint NOT NULL, link_source text NOT NULL, score double precision, created_at timestamptz NOT NULL DEFAULT now(), CONSTRAINT uq_concept_link UNIQUE (concept_doc_id, question_id, link_source) ); CREATE INDEX IF NOT EXISTS idx_concept_links_doc ON study_concept_links(concept_doc_id); CREATE INDEX IF NOT EXISTS idx_concept_links_q ON study_concept_links(question_id);