db 설명서 > 설명서

본문 바로가기
사이트 내 전체검색

설명서

db 설명서

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 37회 작성일 26-02-15 23:47

본문

DB 구조 안내
이모티콘 DB 테이블 / 컬럼 설명서
업로드된 SQL 기준으로, 이모티콘 시스템의 핵심 테이블 2개(패키지 정의 / 회원 보유)를 정리했습니다.
컬럼 의미, 키(Primary/Unique), 인덱스, 테이블 간 연동 관계까지 한 번에 확인할 수 있습니다.
전체 구조 개요
  • g5_emoticon_package : 이모티콘 패키지(상품/팩) 정의 테이블
  • g5_emoticon_user_package : 회원이 보유한 패키지(구매/프로모션 지급 결과) 저장 테이블
  • 유료/프로모션은 보유 테이블로 “보유 여부”를 확인하고, 기본(basic)은 예외 처리됩니다.
무료(basic) 이모티콘 처리 방식
  • basic(기본) 이모티콘은 DB에 별도의 보유 여부를 저장하지 않습니다.
  • 회원/비회원 상관없이 게시판에서 항상 표시되도록 설계되어 있습니다.
  • 즉, basic 타입은 g5_emoticon_user_package 테이블을 조회하지 않습니다.
  • 반면 paid(유료) / promo(프로모션) 타입은 보유 확인을 위해 g5_emoticon_user_package를 조회합니다.
1) g5_emoticon_package (패키지/상품 정의)
역할 : 게시판/상점/프로모션/관리자 페이지에서 표시되는 팩의 기본 정보를 저장합니다.
(팩 코드, 이름, 종류(basic/promo/paid), 폴더/썸네일, 가격/할인, 판매/활성, 정렬, 기간/프로모션 기간 등)
컬럼 타입/기본값 설명
package_code varchar(64) 패키지 코드(PK). 폴더명/식별자 (예: basic1, fruit, paid01)
name varchar(128) 패키지(상품)명(관리자 표시용)
package_type enum('basic','promo','paid')
DEFAULT 'paid'
종류: basic=기본 제공(누구나), promo=프로모션, paid=유료
description varchar(255)
NULL
설명(선택)
asset_dir varchar(255) 이모티콘 폴더(웹 경로) (예: /img/emoticon/basic/basic1)
thumb_file varchar(128)
DEFAULT 'thumb.png'
썸네일 파일명(폴더 내부). 기본 thumb.png
thumb_img varchar(255)
NULL
대표 이미지(웹 경로, 선택). 비워두면 asset_dir/thumb_file 사용 권장
price_point int(11)
DEFAULT 0
가격(포인트)
discount_enabled tinyint(1)
DEFAULT 0
할인 사용 여부(1=사용,0=미사용)
discount_value varchar(16)
NULL
할인 값(예: 20% 또는 -20). 미사용이면 NULL 권장
is_sellable tinyint(1)
DEFAULT 1
상점 판매 노출(1=판매/노출,0=비판매)
is_time_limited tinyint(1)
DEFAULT 0
기간제 여부(1=기간제,0=영구)
duration_days int(11)
NULL
기간(일). 기간제일 때 사용, 영구면 NULL
promo_starts_at date
NULL
프로모션 시작일(YYYY-MM-DD)
promo_ends_at date
NULL
프로모션 종료일(YYYY-MM-DD)
sort_order int(11)
DEFAULT 0
정렬 순서(작을수록 먼저)
is_active tinyint(1)
DEFAULT 1
전체 활성(1=활성,0=비활성)
created_at datetime
DEFAULT current_timestamp()
생성일
updated_at datetime
DEFAULT current_timestamp()
ON UPDATE current_timestamp()
수정일(자동 갱신)
키/인덱스
  • PRIMARY KEY : package_code
  • idx_shop : (is_active, is_sellable, sort_order, created_at)
  • idx_type_active_sort : (package_type, is_active, sort_order)
  • idx_promo_window : (package_type, is_active, promo_starts_at, promo_ends_at)
2) g5_emoticon_user_package (회원 보유 패키지)
역할 : 회원이 어떤 패키지를 언제 획득했고, 활성/만료 상태가 어떤지 저장합니다.
구매/프로모션 지급/관리자 지급 등 “보유 결과”는 전부 이 테이블에 기록됩니다.
컬럼 타입/기본값 설명
id int(11)
AUTO_INCREMENT
PK (AUTO_INCREMENT)
mb_id varchar(20) 회원 아이디(그누보드 mb_id)
package_code varchar(64) 보유한 패키지 코드(g5_emoticon_package.package_code)
is_active tinyint(1)
DEFAULT 1
보유 상태(1=사용가능,0=정지/회수)
acquired_at date
DEFAULT curdate()
획득일(YYYY-MM-DD)
expires_at date
NULL
만료일(영구면 NULL)
source varchar(16)
DEFAULT 'buy'
획득 경로(예: buy/promo/admin)
source_ref varchar(64)
NULL
주문번호/프로모션코드/관리자 메모 등(선택)
키/인덱스/제약조건
  • PRIMARY KEY : id
  • UNIQUE KEY uq_user_pkg : (mb_id, package_code) → 같은 회원이 같은 팩을 중복 보유하지 않도록 방지
  • idx_user_active_exp : (mb_id, is_active, expires_at) → “내 보유팩” 조회/만료 체크 최적화
  • idx_pkg : (package_code) → 패키지별 보유자 조회 최적화
  • idx_source_ref : (source, source_ref) → 주문/프로모션 추적 최적화
  • FOREIGN KEY fk_user_pkg_pkg : package_code → g5_emoticon_package(package_code), ON DELETE CASCADE
연동 동작 요약
  • 상점 구매 완료 또는 프로모션 지급 완료 시 → g5_emoticon_user_package에 보유 레코드가 저장됩니다.
  • 게시판 모달에서 “내가 가진 팩”만 보여주려면 → mb_id 기준 user_package 조회 후 package_code로 package 정보 결합합니다.
  • 패키지 자체를 삭제하면 → FK의 ON DELETE CASCADE로 해당 팩 보유 기록도 함께 삭제됩니다.
  • 기간제 만료는 expires_at 기준으로 판단하거나, 만료 시 is_active=0 처리 방식으로 운영할 수 있습니다.
감사합니다.

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

  • 게시물이 없습니다.

접속자집계

오늘
41
어제
36
최대
66
전체
381
Copyright © 소유하신 도메인. All rights reserved.