Post on 15-Jul-2020
transcript
1. 서론(설계 목적 및 목표)
- 영화관의 영화 예매와 고객 관리 시스템
- 고객의 영화 예매 상황과, 고객별 포인트, 등급, 티켓 내역, 결제 상황을 관리하기 위함
- 영화관에서 상영하는 영화 목록을 영화관 별로 관리하기 위함
2. ER 다이어그램
3. SQL문(DDL, DML)
- 테이블별 DDL과 사용한 DML 캡쳐 및 간단한 설명
1) Admin 테이블
① DDL
관리자 계정 테이블인 admin은 id와 password 컬럼만 존재한다. Primary key는 id이고, 두 컬럼 모두 null을
허용하지 않는다.
② DML
Admin 테이블에 관리자 계정을 추가하는 쿼리
로그인 시 입력받은 id, password가 admin 테이블에 존재하는지 확인하는 쿼리
2) Customer 테이블
① DDL
고객 계정 테이블인 customer는 id와 password, 그 외 개인정보, 포인트, 등급 정보 컬럼이 존재한다.
Primary key는 id이고, 모든 컬럼이 null을 허용하지 않는다. 한글 사용을 위해 Charset을 utf8로 설정한다.
② DML
회원가입 시 아이디 중복 체크를 위해 Cutomer 테이블에서 id가 존재하는 지 확인하는 쿼리
customer 테이블에 입력 받은 고객 정보를 삽입한다.
로그인 시 입력 받은 id와 password가 customer 테이블에 존재하는지 확인하는 쿼리
고객의 등급을 변경하는 쿼리
Vip 테이블에 존재하지 않는 고객의 등급은 모두 ‘일반’으로 변경하는 쿼리
고객의 개인정보, 포인트, 등급을 가져오는 쿼리
고객이 수정한 비밀번호, 개인정보를 업데이트 하는 쿼리
회원탈퇴 시 고객의 데이터를 삭제하는 쿼리
특정 고객의 포인트를 가져오는 쿼리
특정 고객의 포인트를 변경하는 쿼리
3) Vip 테이블
① DDL
Vip 고객 테이블인 vip는 primary key인 id 컬럼만 존재한다.
② DML
Vip 테이블의 모든 데이터를 삭제하는 쿼리
Vip 테이블에 고객의 ID를 저장하는 쿼리
4) Movie 테이블
① DDL
영화 정보 테이블인 movie은 영화를 식별할 수 있는 movieID와 감독, 영화 제목, 출연, 등급, 주요정보 컬럼
이 존재한다. Primary key는 movieID이다.
② DML
Movie 테이블에 영화 정보를 삽입하는 쿼리
Movie 테이블에서 모든 영화 정보를 예매순으로 정렬해 가져오는 쿼리
검색 시 Movile 테이블에서 특정 키워드를 가진 영화 제목을 검색한 후 가져오는 쿼리
Movie 테이블에서 영화 제목을 가져오는 쿼리
Movie 테이블에서 특정 영화 제목을 가진 영화의 ID를 가져오는 쿼리
Movile 테이블에서 특정 movieID를 가진 영화의 제목을 가져오는 쿼리
Movie 테이블에서 특정 영화 제목을 가진 영화를 삭제하는 쿼리
Movie 테이블에서 특정 영화의 정보를 수정하는 쿼리
5) Reservation 테이블
① DDL
예약 정보 테이블인 reservation은 예매 번호와 고객의 ID, 영화 제목, 티켓 매수(howmany), 영화관 이름, 좌
석, 날짜, 시간, 결제 여부(TF), 결제 번호, 티켓 번호 컬럼이 존재한다. Primary key는 reserv_number이다.
② DML
예매 번호로 티켓 매수를 가져오는 쿼리
예매 번호로 고객의 ID를 가져오는 쿼리
고객의 예매 정보를 삽입하는 쿼리
고객의 ID로 예매 정보를 최신순으로 가져오는 쿼리
예매 번호로 예매 정보를 가져오는 쿼리
모든 예매 정보를 최신순으로 가져오는 쿼리
예매 번호로 예매 정보를 삭제하는 쿼리
예매 번호로 결제 번호와 티켓 번호를 포함한 정보를 가져오는 쿼리
고객의 ID로 예매 정보를 삭제하는 쿼리
영화 제목, 영화관 이름, 날짜, 시간으로 좌석 정보를 가져오는 쿼리
6) Theater 테이블
① DDL
영화관 정보 테이블인 theater는 영화관을 식별하기 위한 영화관 ID, 영화관 이름, 주소, 전화번호 컬럼이 존
재한다. Primary key는 theaterID이다.
② DML
모든 영화관 정보를 가져오는 쿼리
영화관 ID로 모든 영화관 정보를 가져오는 쿼리
모든 영화관 이름을 가져오는 쿼리
영화 제목으로 sangyounggwan 테이블에서 영화관 ID를 모두 가져온 후 그 값으로 영화관 이름을 가져오는
쿼리
영화관 ID와 영화관 이름을 가져오는 쿼리
영화관 이름으로 영화관 ID를 가져오는 쿼리
영화관 ID로 영화관 정보를 삭제하는 쿼리
특정 영화관의 정보를 업데이트 하는 쿼리
7) Time 테이블
① DDL
상영관별 영화 상영 시간 테이블인 time은 영화관 ID, 상영관 이름, 좌석 수, 상영 시간 컬럼이 존재한다.
Primary key는 sID, theaterID, time 세 가지이며, sID는 sangyounggwan 테이블의 sID 컬럼을 참조한다.
theaterID는 theater 테이블의 theaterID 컬럼을 참조한다.
② DML
영화 상영 시간을 삽입하는 쿼리
영화관 ID와 상영관 ID로 상영 시간을 가져오는 쿼리
영화 제목으로 상영관 ID를 모두 가져온 후 그 값으로 상영관 ID와 상영 시간을 가져오는 쿼리
8) Sangyounggwan 테이블
① DDL
상영관 정보 테이블인 sangyounggwan은 상영관 이름, 영화관 ID, 상영중인 영화, 좌석 수 컬럼이 존재한다.
Primary key는 sID, theaterID, movieName 세 가지이며, theaterID는 theater 테이블의 theaterID를 참조한다.
② DML
상영관 정보를 삽입하는 쿼리
영화관 ID로 상영관 ID와 영화 제목을 가져오는 쿼리
영화관 ID로 상영관 ID를 가져오는 쿼리
영화관 ID로 모든 좌석의 수를 가져온다.
영화관 ID로 상영관 정보를 삭제하는 쿼리
영화관 ID와 상영관 ID로 상영관 정보를 삭제하는 쿼리
특정 영화관의 ID가 변경되면 sangyounggwan의 영화관 ID도 변경하는 쿼리
9) Ticket 테이블
① DDL
티켓 정보 테이블인 ticket은 티켓 번호와 예매 번호 컬럼이 존재한다. Primary key는 ticketID이다.
② DML
티켓 번호와 예매 번호를 삽입하는 쿼리
예매 번호로 티켓 번호를 가져오는 쿼리
예매 번호로 티켓 정보를 삭제하는 쿼리
10) Pay 테이블
① DDL
결제 정보 테이블인 pay는 결제 번호와 고객의 ID, 날짜, 티켓 매수(howmany), 포인트, 포인트 사용여부
(usePoint), 총 결제 금액(totalPrice) 컬럼이 존재한다. Primary key는 payID이다.
② DML
결제 정보를 삽입하는 쿼리
프로그램 기능 별 동작(관리자, 고객)
4.1 관리자
1) 영화 추가
2) 영화 삭제
3) 영화 수정
4) 영화관 등록
5) 영화관 수정
6) 영화관 삭제
7) 상영 영화 관리
- 삭제
8) 티켓 발권
9) 현장 예매
11) VIP 고객 검색
4.2 고객
1) 무비 차트(상영중)
2) 영화 예매
3) 회원 등록
4) 개인 정보
5) 포인트
6) 예매 취소
7) 회원 탈퇴