Files
slot/docs/02-database-schema.md
chpark 0e549cad46 Initial import of slot-ss.com (gnuboard5 + Eyoom + YoungCart) for migration
Original PHP source rsync'd from production server (slot-ss.com) on 2026-04-27.
Excluded from import:
  - data/editor (74GB user uploads), data/file (8.5GB attachments)
  - data/member_image, vendor/, db100up/, caches/sessions/logs/tmp

Includes:
  - 11,636 files, ~206MB source code (gnuboard5 v5.6.6, Eyoom builder, YoungCart 4)
  - 28 plugins (bacara, chatbot, cron, swiunApi, sns, sms5, ...)
  - Active theme: eb4_maga_005 (Eyoom magazine layout)
  - Local Docker dev stack (PHP 7.4 + Apache + Redis + MariaDB) under docker/
  - PostgreSQL migration setup (pgloader configs) under db/
  - Architecture/migration docs under docs/

Single non-source patch: src/config.php now reads G5_DOMAIN_OVERRIDE env var
so the local Docker stack can serve at http://localhost:8088 without touching
the production constant. Falls back to https://slot-ss.com when unset.
2026-04-27 18:23:16 +09:00

8.8 KiB

Database Schema — slot-ss.com

1. 두 개의 DB

이름 위치 (PG) 크기 (MariaDB) 테이블 용도
inspection2 slot.inspection2.* 4 GB 165 현재 운영 DB
inspection slot_legacy.inspection.* 397 MB 107 구버전 (레거시) — 일부 데이터 포함
DomainCheck (마이그레이션 안 함) 4 KB 거의 빈 테이블, 무시

모든 테이블은 PostgreSQL 의 inspection2 schema 안에 있다 (pgloader 가 MySQL DB 이름을 schema 이름으로 사용). 접근: psql -h localhost -d slot -c "SET search_path TO inspection2; ..."

2. 카테고리별 분포 (운영 DB 기준)

카테고리 테이블 수 사이즈 행 수
그누보드 코어 (g5_*) 36 2.39 GB 11.07M
커스텀 (slot/casino/chatbot/sms/등) 27 713 MB 6.07M
게시판 데이터 (g5_write_*) 37 416 MB 764K
이윰 빌더 (g5_eyoom_*) 38 222 MB 914K
영카트 쇼핑몰 (g5_shop_*) 24 1.16 MB 1.7K
플러그인 (g5_plugin_*) 3 4.7 MB 10K

3. 가장 큰 테이블 Top 20

테이블 행 수 사이즈 설명
g5_point 5,950,013 1380 MB 회원 포인트 적립/사용 내역
g5_visit 4,566,650 929 MB 방문자 로그 (전체 페이지뷰)
game_point 4,383,542 515 MB 게임 포인트 (슬롯/바카라/룰렛 베팅 결과)
g5_write_free 442,272 228 MB 자유게시판 글+댓글
g5_eyoom_attendance 425,540 116 MB 출석체크
g5_eyoom_activity 418,236 91 MB 회원 활동 로그
games_table 303,238 53 MB 슬롯 게임 마스터 테이블
g5_write_pick 17,189 44 MB 픽게시판
g5_write_review 120,870 43 MB 슬롯 후기게시판
g5_board_new 191,817 42 MB 신규 게시글 인덱스 (캐시)
blacklist_table 193,190 42 MB 먹튀 블랙리스트 검색
writing_activity_bak 610,146 39 MB 게시 활동 로그 백업
writing_activity 184,376 31 MB 게시 활동 로그 (현재)
check_table 359,644 26 MB 검수/검증 로그
g5_uniqid 322,862 23 MB 그누보드 unique ID 생성기
g5_write_humor 20,303 20 MB 유머/이슈 게시판
g5_write_rear 18,022 20 MB 후방게시판
g5_write_mukti 37,325 15 MB 먹튀사이트 게시판
g5_write_lottery_ticket 45,724 13 MB 슬생복권 응모
g5_write_fakesite 33,126 10 MB 가품사이트 게시판

4. 운영 게시판 전체 (g5_board → 36개 + 게시판별 g5_write_* 테이블)

bo_table 제목 글 수 댓글 수
free 자유게시판 90,591 351,685
lottery_ticket 슬생복권 45,724 0
humor 유머/이슈 19,209 1,094
rear 후방게시판 17,650 374
pick 픽게시판 17,171 23
review 후기게시판 8,399 112,462
gift_coupons 기프티콘교환 4,693 0
webtoon (19금)번역망가 1,987 0
mukti 먹튀사이트 1,824 35,501
fakesite 가품사이트 1,517 31,609
gift_exchanges 기프티콘현황 1,404 1,398
news 카지노뉴스 1,055 3
complaint 먹튀신고 1,052 17
ai (19금)AI 사진 984 0
slotche2 프라그마틱 614 0
slotreview 슬롯 리뷰 544 1
slotche4 플레이엔고 394 0
slotche6 하바네로 176 0
slotche5 릴랙스게이밍 151 0
slotche7 CQ9 146 0
slotche3,8,9,10,11,12 (기타 슬롯제작사) < 100 each
dividend, guarantee, event, notice, qa, column, reservation, inspection, guide (각종 보조게시판)

5. 회원 (g5_member) 핵심 컬럼

컬럼 타입 설명
mb_no bigint PK 회원 일련번호
mb_id varchar 로그인 ID
mb_password varchar bcrypt + (gnuboard 전용) salt 해시
mb_password2 varchar (구버전 호환)
mb_nick varchar 닉네임
mb_email varchar 이메일
mb_level smallint 권한 레벨 (1-12). 12 = 최고관리자
mb_point int 보유 포인트
mb_today_login, mb_login_start, mb_login_ip 로그인 기록
mb_certify, mb_adult, mb_dupinfo 본인인증 (KCP / okname)
mb_signature text 회원 서명
mb_open smallint 정보공개 여부

현재 회원 수: 3,064 명 / 관리자 4명 (admin, admin2(먹튀판사), admin3(슬생검증팀), admin4(슬생운영팀))

6. 핵심 테이블 카테고리 별 정리

6.1 그누보드 코어 (g5_*)

  • g5_member, g5_member_social_profiles, g5_member_cert_history
  • g5_board, g5_board_file, g5_board_good, g5_board_new
  • g5_group, g5_group_member
  • g5_point (포인트 원장), g5_login (현재 로그인), g5_visit / g5_visit_sum (방문통계)
  • g5_qa_config, g5_qa_content (1:1문의)
  • g5_content, g5_faq, g5_faq_master, g5_menu, g5_new_win, g5_poll, g5_poll_etc, g5_popular, g5_scrap, g5_memo, g5_mail, g5_autosave, g5_uniqid, g5_auth, g5_config, g5_cert_history

6.2 게시판 데이터 (g5_write_*)

한 게시판당 한 테이블 — 위 §4 표의 36개 게시판 × 각 g5_write_<bo_table>

6.3 이윰 빌더 (g5_eyoom_*)

대표:

  • g5_eyoom_member (확장 회원정보), g5_eyoom_attendance (출석), g5_eyoom_activity (활동), g5_eyoom_respond (반응/공감)
  • g5_eyoom_banner, g5_eyoom_banner_item, g5_eyoom_banner_hit
  • g5_eyoom_slider, g5_eyoom_slider_ytitem
  • g5_eyoom_yellowcard (경고/제재), g5_eyoom_manager (운영진)
  • g5_eyoom_tag, g5_eyoom_tag_write (태그)
  • g5_eyoom_bbspoll, g5_eyoom_counsel, g5_eyoom_goods, g5_eyoom_rating, g5_eyoom_mbmemo, g5_eyoom_yellowcard

6.4 영카트 쇼핑몰 (g5_shop_*)

  • 거의 비어있음 (운영 미가동) — 현재 데이터 1.7K 행, 1MB
  • g5_shop_default(설정), g5_shop_item(상품), g5_shop_item_option, g5_shop_cart(1559건), g5_shop_order, g5_shop_order_data, g5_shop_coupon*, g5_shop_event*, g5_shop_personalpay, g5_shop_inicis_log

6.5 커스텀 — 슬롯/카지노 도메인

테이블 용도
game_point 게임 포인트 (슬롯/바카라/룰렛 베팅 결과 적립)
games_table 슬롯 게임 마스터 (303K 게임 회차 추정)
bacara_betting 바카라 베팅 로그 (7.9K건)
swiun_betting Swiun 슬롯 API 베팅 로그
lottery_history 복권 응모/당첨 이력
event_point_exchange, point_exchange 포인트 환전/이벤트
slotbuff, slotbuff-category "슬롯버프" 기능
blacklist_table, blacklist_search 먹튀 블랙리스트
check_table, writing_activity*, writing_today 검증/활동 로그
chatbot_conversations, chatbot_feedback 챗봇 (AI 대화)
officecon_products 기프티콘
ask_seo, ask_seo_url SEO 메타
sms5_book, sms5_book_group, sms5_config, sms5_form, sms5_form_group, sms5_history, sms5_write SMS 발송 시스템

7. 마이그레이션 시 주의사항

7.1 인덱스 손실

  • pgloader 의 preserve index names 옵션과 MySQL 의 동일-인덱스명 across-table 허용 차이로 211개 인덱스 생성 실패 (PostgreSQL 은 schema 내 인덱스 이름 unique 필수).
  • 다음 단계로 인덱스 이름을 <table>_<index> 형태로 자동 rename 후 재생성 필요. → db/regen_indexes.sql 스크립트로 작성 예정.

7.2 비밀번호 해시

  • 그누보드5 mb_password 는 PHP password_hash($pw, PASSWORD_BCRYPT) 형식
  • Node.js 신규 시스템에서 bcrypt.compare() 호환 가능 (즉, 회원 비밀번호 그대로 사용 가능)

7.3 한글 인덱스 이름 / 특수 컬럼

  • lottery_history 테이블의 복권 게시판 주키 같이 한글 이름의 인덱스가 있음 — pgloader 가 quoting 실패. 신규 스키마에서는 영어로 rename.

7.4 BLOB / 첨부 메타

  • 본문 첨부파일 메타는 g5_board_file 에 있고 실파일은 서버의 /var/www/slot-ss.com/data/file/<bo_table>/<wr_id>/<file> 에 저장
  • 에디터 이미지: data/editor/<YYMM>/<file> — 74GB
  • 신규 시스템에서는 S3 호환 오브젝트 스토리지로 이전 권장 (Cloudflare R2 / AWS S3 / MinIO)

7.5 ENUM/SET

  • pgloader 는 enum/settext 로 변환. 검증 로직은 신규 스키마에서 CHECK 제약 또는 PostgreSQL native enum 으로 재정의 권장

7.6 datetime/zerodate

  • MySQL 의 '0000-00-00 00:00:00'using zero-dates-to-null 로 NULL 변환됨. NOT NULL 제약은 모두 제거된 채로 들어왔음. 비즈니스 로직에서 NULL 허용을 검토할 것.