Files
jongryangje/docs/개발 규칙/06-데이터베이스정리구조.md
2026-04-08 00:23:55 +09:00

2.2 KiB

데이터베이스 정리 구조 (Database Organization)

member, member_log 테이블·MemberModel·MemberLogModel 기준. 테이블·컬럼·Model 매핑 규칙.

1. 테이블 네이밍

  • 소문자, 단어 구분 언더스코어. 예: member, member_log.
  • 복수형보다 단수형 선호. 예: member (회원 테이블).

2. PK·컬럼 네이밍

  • PK: 테이블약어_idx. 예: mb_idx(member), mll_idx(member_log).
  • 컬럼: 테이블약어_컬럼명 또는 공통 약어 유지.
    • member: mb_id, mb_passwd, mb_name, mb_email, mb_phone, mb_lang, mb_level, mb_group, mb_state, mb_regdate, mb_latestdate, mb_leavedate.
    • member_log: mll_success, mb_idx, mb_id, mll_regdate, mll_ip, mll_msg, mll_useragent, mll_logout_date, mll_url, mll_referer 등.

3. Model 매핑

  • 파일명: 테이블명을 PascalCase로 + Model. 예: memberMemberModel.php, member_logMemberLogModel.php.
  • 클래스: $table = 'member', $primaryKey = 'mb_idx', $returnType = 'object', $useTimestamps = false, $allowedFields = [...] 명시.
  • 역할: 해당 테이블에 대한 조회·추가·수정·삭제만. 복잡한 비즈니스 로직은 서비스/헬퍼로 분리 가능.

4. 타입·일자

  • 일자/시간: DB·PHP 모두 Y-m-d H:i:s (또는 DB DATETIME) 사용. 예: mb_regdate, mb_latestdate, mll_regdate, mll_logout_date.
  • 상태값: 숫자 상수 사용. 예: mb_state 1=정상, 2=정지, 0=탈퇴. 상수는 컨트롤러 또는 Config에 정의.

5. FK·참조

  • 다른 테이블 PK 참조 시 컬럼명에 참조 테이블 약어 사용. 예: member_log.mb_idx → member 테이블 PK 참조.
  • Model에서는 allowedFields에 FK 컬럼 포함. 조인 필요 시 메서드에서 처리.

6. 새 테이블 추가 시

  1. 테이블명·PK·컬럼명을 위 규칙으로 정한다.
  2. app/Models/XxxModel.php 생성, $table, $primaryKey, $allowedFields 설정.
  3. 마이그레이션 사용 시 CI4 Migrations 규칙 준수. (현재 프로젝트는 마이그레이션 없이 테이블 직접 생성 가능.)

이 구조를 따르면 member·member_log와 동일한 네이밍·Model 패턴으로 확장된다.