1. 데이터 모델 설계
이 단계에서는 데이터베이스에서 주류 정보, 판매처 정보, 사용자 리뷰와 권한을 관리할 수 있는 구조를 설계하는 것이 핵심입니다. 데이터베이스 구조를 효율적으로 설계하면 이후 기능 구현과 유지 보수가 훨씬 수월해질 것입니다.
주요 테이블 구성
주요 테이블과 각 필드를 다음과 같이 설정하는 것이 좋습니다:
1. drinks (주류 정보 테이블)
• drink_id (INT, PK) - 고유 주류 ID
• name (VARCHAR) - 주류 이름
• type (VARCHAR) - 주류 타입 (맥주, 위스키 등)
• origin (VARCHAR) - 생산지
• alcohol_content (DECIMAL) - 도수
• volume (INT) - 용량
2. retailers (판매처 정보 테이블)
• retailer_id (INT, PK) - 판매처 ID
• name (VARCHAR) - 판매처 이름
• location (VARCHAR) - 위치 (오프라인일 경우에만)
• drink_id (INT, FK) - 외래키, 주류 정보와 연결
• price (DECIMAL) - 가격
• link (TEXT) - 온라인 판매처 링크
3. users (사용자 정보 테이블)
• user_id (INT, PK) - 사용자 ID
• username (VARCHAR) - 사용자 이름
• user_level (TINYINT) - 사용자 등급 (0 = 일반 사용자, 1 = 전문가)
4. comments (전문가 리뷰 테이블)
• comment_id (INT, PK) - 댓글 ID
• drink_id (INT, FK) - 주류 ID
• user_id (INT, FK) - 사용자 ID
• content (TEXT) - 댓글 내용
• timestamp (TIMESTAMP) - 작성 시간
2. 프론트엔드 및 백엔드 개발 전략
프론트엔드
이 프로젝트에서는 사용자가 주류 목록을 확인하고 가격 비교를 손쉽게 할 수 있어야 합니다. 초기 개발에는 다음 사항을 고려할 수 있습니다:
• HTML, CSS, JavaScript, jQuery: 기본 페이지 구조와 인터랙션을 설정할 때 유용하며, 사용자와 데이터베이스 간의 기본 기능을 구현하는 데 적합합니다.
• React (옵션): 프론트엔드의 성능을 높이고, UI 컴포넌트를 체계적으로 관리하기 위해 React로 구성하는 것도 좋습니다.
백엔드
백엔드에서는 데이터베이스와의 연결과 데이터 처리를 담당하며, PHP와 함께 사용하면 다음과 같은 기능을 쉽게 구현할 수 있습니다:
• PHP 및 REST API: 주류 정보, 판매처 정보, 리뷰 정보를 JSON 형태로 반환하는 RESTful API를 구축합니다.
• 서버 프레임워크: PHP와 호환이 되는 간단한 프레임워크인 Laravel을 사용하면 데이터베이스 관리와 API 개발을 더욱 쉽게 처리할 수 있습니다.
데이터 흐름 구조
API를 통한 데이터 흐름이 주류 정보 및 가격 비교 기능을 위해 효율적으로 설계됩니다.
• API 엔드포인트 예시:
• /api/drinks : 주류 목록 제공
• /api/drinks/{id} : 특정 주류 상세 정보 제공
• /api/comments : 특정 주류에 대한 리뷰 정보 제공 및 전문가만 접근 가능
3. 전문가 댓글 기능 설계
전문가만 댓글을 남길 수 있도록 하기 위해서는 사용자 레벨을 활용하여 댓글 작성 권한을 제한합니다. 다음과 같은 접근 방식으로 구현할 수 있습니다.
1. 권한 필드: users 테이블에서 user_level 필드를 기반으로 권한을 구분합니다.
2. 댓글 작성 접근 제한:
• 댓글을 작성하기 전 user_level 필드를 확인하여 레벨 1 이상인 사용자만 댓글 작성 기능이 보이도록 구현합니다.
3. 검증 과정:
• 백엔드에서 댓글 등록 API를 호출할 때마다 user_level을 다시 확인하여, 비정상적인 접근을 방지합니다.
[가격비교사이트] 프로젝트 제목 선정 (7) | 2024.10.30 |
---|---|
[가격비교사이트] 무료 호스팅 서비스 선택 (1) | 2024.10.29 |
[가격비교사이트] 아이디어 구상 및 Chat GPT 질문 내용 (1) | 2024.10.27 |
[포트폴리오 기획] 1. 사이트 맵 및 정보 구조(IA) 설계 - 와이어 프레임 구성 (1) | 2024.10.13 |