# DDL 실행 순서 가이드 벤더사-인플루언서 시스템의 데이터베이스 스키마를 구축하기 위한 DDL 파일들의 실행 순서입니다. ## 실행 순서 ### 1. 001_create_vendor_influencer_mapping_table.sql - **목적**: 벤더사-인플루언서 승인 매핑 테이블 생성 - **의존성**: VENDOR_LIST, USER_LIST 테이블이 이미 존재해야 함 - **설명**: 벤더사와 인플루언서 간의 승인 요청 및 파트너십 관리를 위한 핵심 테이블 ### 2. 002_add_vendor_influencer_mapping_indexes.sql - **목적**: 성능 최적화를 위한 인덱스 추가 - **의존성**: 001번 DDL 실행 완료 - **포함 인덱스**: - 기본 검색용 인덱스 (VENDOR_SEQ, INFLUENCER_SEQ, STATUS 등) - 복합 인덱스 (성능 최적화) - 유니크 인덱스 (중복 방지) ### 3. 003_add_vendor_influencer_mapping_foreign_keys.sql - **목적**: 데이터 무결성을 위한 외래키 제약 조건 추가 - **의존성**: 001, 002번 DDL 실행 완료 - **외래키 관계**: - VENDOR_LIST와의 관계 - USER_LIST와의 관계 (인플루언서, 요청자, 승인자) ### 4. 004_add_vendor_list_additional_columns.sql - **목적**: VENDOR_LIST 테이블에 검색 및 분류를 위한 컬럼 추가 - **의존성**: 기존 VENDOR_LIST 테이블 존재 - **추가 컬럼**: - CATEGORY (사업 카테고리) - REGION (지역) - DESCRIPTION (설명) - LOGO (로고 URL) - TAGS (검색 태그) - APPROVAL_STATUS (승인 상태) - 기타 관리용 컬럼들 ### 5. 005_add_user_list_additional_columns.sql - **목적**: USER_LIST 테이블에 인플루언서 정보를 위한 컬럼 추가 - **의존성**: 기존 USER_LIST 테이블 존재 - **추가 컬럼**: - INFLUENCER_TYPE (인플루언서 타입) - PRIMARY_CATEGORY (주요 활동 카테고리) - FOLLOWER_COUNT (팔로워 수) - 소셜미디어 링크들 - 프로필 정보 - 인증 관련 컬럼들 ### 6. 006_create_partnership_history_table.sql - **목적**: 파트너십 활동 이력 추적을 위한 테이블 생성 - **의존성**: 001~005번 DDL 실행 완료 - **기능**: 모든 파트너십 관련 액션을 로깅하여 감사 추적 가능 ### 7. 007_create_notification_table.sql - **목적**: 알림 시스템을 위한 테이블 생성 - **의존성**: 001~006번 DDL 실행 완료 - **기능**: 파트너십 관련 알림 및 시스템 공지사항 관리 ### 8. 008_create_sample_data_inserts.sql - **목적**: 테스트 및 개발을 위한 샘플 데이터 삽입 - **의존성**: 001~007번 DDL 실행 완료 - **포함 데이터**: - 벤더사 샘플 데이터 - 인플루언서 샘플 데이터 - 매핑 관계 샘플 데이터 - 이력 및 알림 샘플 데이터 ### 9. 009_add_vendor_list_indexes.sql - **목적**: VENDOR_LIST 테이블 검색 최적화 인덱스 추가 - **의존성**: 004번 DDL 실행 완료 (컬럼 추가 후) - **포함 인덱스**: 카테고리, 지역, 승인상태 등 ### 10. 010_add_user_list_indexes.sql - **목적**: USER_LIST 테이블 검색 최적화 인덱스 추가 - **의존성**: 005번 DDL 실행 완료 (컬럼 추가 후) - **포함 인덱스**: 인플루언서타입, 카테고리, 인증상태 등 ## 실행 방법 ```bash # MySQL 명령어로 순차 실행 mysql -u [username] -p [database_name] < ddl/001_create_vendor_influencer_mapping_table.sql mysql -u [username] -p [database_name] < ddl/002_add_vendor_influencer_mapping_indexes.sql mysql -u [username] -p [database_name] < ddl/003_add_vendor_influencer_mapping_foreign_keys.sql mysql -u [username] -p [database_name] < ddl/004_add_vendor_list_additional_columns.sql mysql -u [username] -p [database_name] < ddl/005_add_user_list_additional_columns.sql mysql -u [username] -p [database_name] < ddl/006_create_partnership_history_table.sql mysql -u [username] -p [database_name] < ddl/007_create_notification_table.sql mysql -u [username] -p [database_name] < ddl/008_create_sample_data_inserts.sql mysql -u [username] -p [database_name] < ddl/009_add_vendor_list_indexes.sql mysql -u [username] -p [database_name] < ddl/010_add_user_list_indexes.sql ``` ## 주의사항 1. **순서 중요**: 반드시 번호 순서대로 실행해야 합니다. 2. **의존성 확인**: 각 DDL 파일의 전제조건을 확인하세요. - 009번은 004번 실행 후 - 010번은 005번 실행 후 3. **백업**: 프로덕션 환경에서는 실행 전 반드시 데이터베이스 백업을 수행하세요. 4. **권한**: DDL 실행을 위한 적절한 데이터베이스 권한이 필요합니다. 5. **테스트**: 개발 환경에서 먼저 테스트 후 프로덕션에 적용하세요. 6. **샘플 데이터**: 008번 파일의 샘플 데이터는 개발/테스트 환경에서만 사용하세요. 7. **인덱스 중복**: 기존에 동일한 이름의 인덱스가 있으면 에러가 발생할 수 있습니다. ## 롤백 방법 각 DDL 파일에 대응하는 롤백 스크립트가 필요한 경우, 역순으로 DROP TABLE, DROP INDEX, DROP CONSTRAINT 등을 실행해야 합니다. ## 버전 관리 - 각 DDL 파일의 상단에 생성일과 목적이 명시되어 있습니다. - 변경사항이 있을 경우 새로운 번호의 DDL 파일을 생성하여 관리합니다.