0e549cad46
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.
8.8 KiB
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 의
inspection2schema 안에 있다 (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_historyg5_board,g5_board_file,g5_board_good,g5_board_newg5_group,g5_group_memberg5_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_hitg5_eyoom_slider,g5_eyoom_slider_ytitemg5_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는 PHPpassword_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/set→text로 변환. 검증 로직은 신규 스키마에서 CHECK 제약 또는 PostgreSQL native enum 으로 재정의 권장
7.6 datetime/zerodate
- MySQL 의
'0000-00-00 00:00:00'은using zero-dates-to-null로 NULL 변환됨. NOT NULL 제약은 모두 제거된 채로 들어왔음. 비즈니스 로직에서 NULL 허용을 검토할 것.