🗄️ DB
MariaDB 스키마 & 라이브 브라우저bookconverter SSOT
6 코어 테이블•4,712 콘텐츠 블록•8 Books / 92 Units (172 Pages)•725 미디어 자산
MariaDB 11.x SSOT (bookconverter)
6개 코어 테이블 관계도 (클릭 시 우측 상세 조회)
테이블 카드를 클릭하면 상세 역할과 외래키 연결 명세를 확인하고 데이터 뷰로 이동할 수 있습니다.
⬇ 1:N (Units)⬇ 1:N (Pages)⬇ 1:N (Blocks)
⬇ 1:N (Grouping)⬇ 1:N (Canvas Placement)⬆ N:1 (Page Image) ➔ tb_media_master
⬇ 1:N (Block ID) ⬇ 1:N (Media ID)
CONTENT
콘텐츠 블록 마스터 (Content Block)
Table: tb_content_block (0 행)
부모-자식 트리(parent_block_id), 물리적 BBox 좌표(bbox_json), 점(.) 표기법 39종(content_type_code), 정형화된 JSON(payload_json)을 모두 포괄하는 핵심 테이블입니다.
📌 핵심 무결성 & 비즈니스 규칙
- parent_block_id를 통해 CONTAINER/LIST/TABLE 부모 아래로 자식 블록이 트리 형태로 결합됩니다 (Self-Referencing FK).
- bbox_json은 [x, y, w, h] 포맷으로 저장되며, 뷰어에서 SVG/CSS 오버레이로 변환됩니다.
- payload_json에는 화자, 타이머, 발음기호, 연어, 문법 공식, 선다형 보기 등이 보존됩니다.
- teacher_payload_json에는 정답 및 교사용 해설이 보안 분리 저장됩니다.
🔗 연결된 외래키 관계 (FKs)
블록 소속 교재 (tb_content_block.book_id ➔ tb_book.id)N:1
ON tb_content_block.book_id = tb_book.id
블록 소속 단원 (tb_content_block.unit_id ➔ tb_unit.id)N:1
ON tb_content_block.unit_id = tb_unit.id
블록 지면 좌표 기준 (tb_content_block.page_id ➔ tb_page.id)N:1
ON tb_content_block.page_id = tb_page.id
부모 컨테이너 계층 트리 (tb_content_block.parent_block_id ➔ tb_content_block.id)N:1
ON child_block.parent_block_id = parent_block.id
매핑 소속 블록 (tb_block_media.block_id ➔ tb_content_block.id)N:1
ON tb_block_media.block_id = tb_content_block.id