2.2 KiB
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등.
- member:
3. Model 매핑
- 파일명:
테이블명을 PascalCase로 + Model. 예:member→MemberModel.php,member_log→MemberLogModel.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_state1=정상, 2=정지, 0=탈퇴. 상수는 컨트롤러 또는 Config에 정의.
5. FK·참조
- 다른 테이블 PK 참조 시 컬럼명에 참조 테이블 약어 사용. 예:
member_log.mb_idx→ member 테이블 PK 참조. - Model에서는
allowedFields에 FK 컬럼 포함. 조인 필요 시 메서드에서 처리.
6. 새 테이블 추가 시
- 테이블명·PK·컬럼명을 위 규칙으로 정한다.
app/Models/에XxxModel.php생성,$table,$primaryKey,$allowedFields설정.- 마이그레이션 사용 시 CI4 Migrations 규칙 준수. (현재 프로젝트는 마이그레이션 없이 테이블 직접 생성 가능.)
이 구조를 따르면 member·member_log와 동일한 네이밍·Model 패턴으로 확장된다.