프런트엔드: The Do,yuzu,-T.c_
백엔드: Dinghow,Midori, 『』
온라인 서평 및 구매 시스템인 "딩동"은 사용자에게 서평을 구매하고 서평할 수 있는 플랫폼을 제공하는 플랫폼입니다. 동시에 자신의 생각에 댓글을 달 수 있습니다. 즐겨찾기, 장바구니, 구매 및 기타 작업에 책을 추가할 수 있습니다. 시스템의 특정 기능 포인트와 해당 요구 사항은 다음과 같습니다.
새로운 사용자를 생성하고 사용자 이름과 비밀번호를 포함한 기본 정보를 초기화합니다.
사용자는 등록된 계정과 비밀번호를 기반으로 로그인합니다.
이용자는 배송지 관리 등 기본정보를 수정할 수 있습니다.
사용자는 키워드를 입력하여 검색하거나, 도서 카테고리별로 검색하면 검색결과가 표시됩니다.
사용자는 도서 정보 페이지에서 소개, 리뷰, 평가 등 도서에 대한 구체적인 정보를 볼 수 있습니다.
사용자는 즐겨찾기에 등록된 도서를 볼 수 있습니다.
사용자는 즐겨찾기에 추가된 책을 삭제할 수 있습니다.
주문을 완료한 후 사용자는 해당 도서를 평가하고 평가할 수 있습니다.
도서정보 페이지에서는 이 도서를 구매한 다른 사람들의 리뷰를 확인할 수 있습니다.
사용자는 도서 페이지와 홈페이지에서 장바구니에 도서를 추가할 수 있습니다.
사용자는 장바구니에 추가된 도서와 해당 가격, 장바구니 총액 등을 포함한 현재 장바구니 정보를 볼 수 있습니다.
장바구니에 담긴 도서를 즐겨찾기로 이동하거나 삭제하거나 수량을 수정할 수 있습니다.
장바구니를 확인한 후 사용자는 이 구매에 대한 주문 정보를 제출하고 저장할 수 있습니다.
사용자는 개인 센터에서 서명된 주문 정보와 서명되지 않은 주문 정보를 볼 수 있습니다.
완료된 주문의 경우 사용자가 삭제할 수 있습니다.
관리자는 관리자 계정과 비밀번호에 따라 백엔드 관리 페이지에 로그인할 수 있습니다.
관리자는 지정된 사용자를 검색하고 결과를 표시할 수 있습니다.
관리자는 지정된 사용자를 금지하고 데이터베이스에서 해당 계정을 삭제할 수 있습니다.
관리자는 책을 추가하거나, 기존 책을 삭제하거나, 기존 책에 대한 정보를 수정할 수 있습니다.
홈페이지의 '신간도서'에서는 최신 도서 5권을 동적으로 진열할 수 있습니다.
홈페이지의 '인기 추천'에서는 사용자 평가가 가장 높은 도서 5권을 동적으로 표시할 수 있습니다.
홈페이지의 '당신을 위한 추천'에서는 홈페이지 관리자가 추천하는 도서 10권을 정적으로 표시할 수 있습니다.
Windows, Mac OS, 권장 브라우저는 Chrome 또는 IE 8 이상입니다.
정보 데이터는 서버 측 데이터베이스에 저장되며, 각 사용자는 지정된 권한에 따라 클라이언트 측에서 정보 공유를 실현하면서 이에 액세스합니다.
배경 데이터는 임의로 변경할 수 없으며, 기밀로 유지되어야 하며, 사용자의 개인정보가 유출되어서는 안 됩니다.
사용자는 접근 권한을 지정했으며 관리자 페이지에 들어갈 수 없습니다.
사용자가 입력한 데이터 정보는 데이터 유형, 값 범위 등을 포함한 정기적인 확인 및 기타 방법을 통해 제한되며, 잘못된 정보의 전송은 적시에 차단됩니다.
데이터베이스의 테이블에 기본 코드 제약 조건, 외부 코드 제약 조건, 일관성 제약 조건을 추가하고, 캐스케이드 작업 설정 등을 통해 데이터베이스 데이터 일관성 및 무결성을 달성하고 보호합니다.
인터페이스는 깨끗하고 친숙하여 사용자가 쉽게 조작하고 필요한 정보에 빠르게 액세스할 수 있습니다.
2.1 로그인 및 등록 기능
2.1.1 로그인 및 등록 기능 설계
사용자는 등록 시 개인 사용자 이름, 비밀번호, 개인 이메일을 포함한 일부 개인 정보를 입력해야 합니다. 다시 등록하세요. 사용자가 성공적으로 등록한 후 시스템은 로그인 페이지로 돌아가고 사용자는 확인 정보로 자신의 사용자 이름과 비밀번호를 기반으로 로그인할 수 있습니다. 로그인하지 않은 사용자는 홈페이지 정보 조회 및 검색 작업을 수행할 수 있지만 개인적인 작업은 수행할 수 없습니다.
액션 시퀀스 | 설명하다 |
---|---|
등록하다 | 사용자는 사용자 이름, 비밀번호, 확인 비밀번호 및 개인 이메일 정보를 입력하여 개인 등록 작업을 완료할 수 있습니다. 위의 입력 정보는 필수이며 규제 요구 사항을 충족해야 합니다. |
등록 성공 | 등록이 성공적으로 완료되면 시스템은 사용자가 로그인할 수 있도록 로그인 페이지로 돌아가거나 로그인을 취소하고 홈 페이지로 돌아갈 수 있습니다. |
등록 실패 | 등록이 실패하면 모든 입력 상자의 정보가 지워지고 아무런 작업도 수행되지 않습니다. |
로그인 | 사용자는 사용자 이름과 비밀번호를 입력하여 로그인할 수 있으며 입력란 정보는 필수입니다. |
로그인 성공 | 로그인에 성공하면 시스템은 홈페이지로 이동하며 사용자 상태는 로그인되어 모든 사용자 작업을 수행할 수 있습니다. |
로그인 실패 | 로그인에 실패하면 시스템은 모든 입력 상자의 정보를 지우고 아무 작업도 수행하지 않습니다. |
로그인 취소 | 사용자가 로그인 취소를 클릭하면 페이지가 초기 홈페이지로 이동합니다. |
2.1.2 로그인 등록 기능 구현
그림 2.1 사용자 로그인
그림 2.2 사용자 등록
그림 2.3 상단 표시줄 - 로그인 후
2.2 개인정보 수정
2.2.1 개인정보 기능설계 수정
이용자는 개인정보 페이지에서 이름, 성별, 이메일 주소, 비밀번호 수정 등 개인정보를 수정할 수 있습니다.
액션 시퀀스 | 설명하다 |
---|---|
개인 페이지를 입력하세요 | 이용자는 로그인 후, 페이지 상단의 '개인센터'를 통해 개인정보 페이지로 진입하실 수 있습니다. |
개인정보 수정 | 이 작업에는 개인 이름, 성별, 이메일 주소 수정이 포함됩니다. 사용자는 세 가지 정보 항목을 수정한 후 "수정 확인" 버튼을 클릭하여 수정된 세 가지 정보를 저장해야 합니다. 수정할 수 없습니다. |
비밀번호 변경 | 비밀번호를 변경하려면 기존 비밀번호와 새 비밀번호를 입력해야 합니다. |
2.2.2 개인정보 수정 기능의 구현
그림 2.4 개인정보 수정
2.3 주소 관리
2.3.1 주소 관리 기능 설계
이용자는 개인센터 페이지의 주소관리 페이지에 진입하여 자신의 배송주소를 관리할 수 있습니다.
액션 시퀀스 | 설명하다 |
---|---|
주소 관리 입력 | 이용자는 로그인 상태에서 개인센터 페이지를 통해 주소관리 페이지로 진입할 수 있습니다. |
새 주소 추가 | '주소 추가'를 클릭하면 팝업창에 시·군·구·상세 주소, 이름, 우편번호, 전화번호 등 새 주소 정보를 입력할 수 있다. 위의 정보가 필요합니다. |
주소 삭제 | 사용자는 "관리"버튼을 클릭하여 선택 작업에 들어간 다음 주소 상자를 클릭하여 선택하거나 모두 선택한 후 삭제를 클릭하여 주소를 삭제합니다. |
2.3.2 주소 관리 기능 구현
그림 2.5 개인 주소 관리
그림 2.6 새 주소 추가
3.1 도서검색
3.1.1 도서 검색 기능 설계
사용자는 검색창에 키워드를 입력하거나 카테고리를 클릭하여 검색 작업을 수행할 수 있습니다. 동시에 사용자는 책을 클릭하여 해당 세부정보 페이지로 들어갈 수 있습니다.
액션 시퀀스 | 설명하다 |
---|---|
검색어 입력 | 사용자는 검색창에 키워드를 입력하거나 카테고리를 클릭하여 검색하면 검색 결과가 검색 페이지로 이동합니다. |
도서 세부정보 보기 | 사용자는 검색 결과에서 책을 클릭하여 책 세부정보 페이지로 이동하여 책 세부정보와 책에 대한 다른 사용자의 댓글을 볼 수 있습니다. |
3.1.2 도서 검색 기능 구현
그림 3.1 도서 검색
그림 3.2 책 세부정보
3.2 즐겨찾기
3.2.1 즐겨찾기 기능 디자인
사용자는 자신이 좋아하는 책을 도서 상세페이지와 홈페이지의 즐겨찾기에 추가할 수 있습니다. 사용자는 홈 페이지를 통해 개인 즐겨찾기를 입력하고 관리 작업을 수행할 수 있습니다.
액션 시퀀스 | 설명하다 |
---|---|
즐겨찾기에 추가 | 사용자는 도서 세부정보 페이지에서 '즐겨찾기에 추가'를 클릭하거나 홈페이지에서 해당 도서 상단의 '즐겨찾기'를 클릭하여 즐겨찾기에 도서를 추가할 수 있습니다. |
즐겨찾기로 이동 | 홈페이지 상단 '마이딩동'의 '내 즐겨찾기'를 통해 즐겨찾기 페이지로 진입하실 수 있습니다. |
보기 모드 전환 | 사용자는 즐겨찾기 페이지의 왼쪽 상단에 있는 "썸네일 모드"와 "상세 모드"를 클릭하여 다양한 보기 모드 간에 전환할 수 있습니다. |
도서 컬렉션 삭제 | 사용자는 "관리"버튼을 클릭하여 선택 작업에 들어간 다음 책 상자를 클릭하여 선택하거나 모두 선택한 후 삭제를 클릭하여 책 컬렉션을 삭제합니다. |
3.2.2 즐겨찾기 기능 구현
그림 3.3 즐겨찾기-썸네일
그림 3.4 즐겨찾기-상세정보
그림 3.5 즐겨찾기 관리
3.3 서평
3.3.1 서평 기능 설계
사용자는 주문을 완료한 후 주문 영수증 페이지에서 구매한 도서를 평가하고 평가할 수 있습니다. 또한 사용자는 세부정보 페이지에서 서평을 볼 수 있습니다.
액션 시퀀스 | 설명하다 |
---|---|
주문 입력 | 이용자는 홈페이지 '마이딩동'을 통해 주문 페이지에 진입한 후 '사인됨'으로 전환해 책을 평가할 수 있다. |
도서 리뷰 | 사용자는 서명된 도서 주문에서 "평가"를 클릭하고 팝업 창에서 별표를 클릭하여 평가한 다음 필수 옵션인 입력 상자에 책에 대한 평가를 입력하고 "제출"을 클릭하여 리뷰를 제출할 수 있습니다. . |
3.3.2 서평 기능 구현
그림 3.6 서평
4.1 장바구니
4.1.1 장바구니 기능 설계
사용자는 도서 세부정보 페이지와 홈페이지에서 좋아하는 도서를 장바구니에 담을 수 있습니다. 사용자는 홈페이지를 통해 '내 장바구니'에 들어가 관리 작업을 수행할 수 있습니다.
액션 시퀀스 | 설명하다 |
---|---|
장바구니에 추가 | 사용자는 도서 세부정보 페이지에서 '장바구니에 추가'를 클릭하거나 홈페이지에서 해당 도서 상단의 '쇼핑에 추가'를 클릭하여 개인 장바구니에 도서를 추가할 수 있습니다. |
장바구니 입력 | 이용자는 홈페이지의 '장바구니'를 통해 개인 장바구니 페이지로 진입할 수 있습니다. |
수량 수정 | 사용자는 해당 도서 수량 열의 플러스 또는 마이너스 기호를 클릭하여 장바구니에 담긴 도서의 수량을 수정할 수 있으며, 장바구니에 담긴 총 금액도 이에 따라 자동으로 수정됩니다. |
즐겨찾기로 이동 | 사용자는 해당 도서 옆에 있는 '즐겨찾기로 이동'을 클릭하여 해당 도서를 즐겨찾기에 추가할 수 있습니다. |
삭제 | 이용자는 해당 도서 옆에 있는 '삭제'를 클릭하거나 도서 자체를 확인하여 장바구니에 담긴 내용을 일괄 삭제할 수 있습니다. |
합의 | 사용자는 "정산" 버튼을 클릭하여 정산을 위한 주문 모듈로 이동합니다. |
4.1.2 장바구니 기능 구현
그림 4.1 장바구니 관리
4.2 주문
4.2.1 주문 기능 설계
사용자는 장바구니를 확인한 후 주문 페이지에 들어가 배송 주소 선택, 주문 내용 확인 등 이 페이지에서 관련 정보를 확인합니다.
액션 시퀀스 | 설명하다 |
---|---|
주문 입력 | 장바구니 결제 내용을 확인한 후 "Checkout"을 클릭하여 주문 페이지로 들어갈 수 있습니다. |
주소 선택 | 사용자는 기존 개인 주소의 주소 상자를 클릭하여 이 주문의 배송 주소를 선택하거나 "새 주소 사용"을 클릭하여 팝업 상자에 이 주문의 배송 주소 정보를 입력할 수 있습니다. |
장바구니로 돌아가기 | 사용자는 페이지 하단의 "장바구니로 돌아가기"를 클릭하여 거래를 종료할 수 있습니다. |
주문 제출 | 사용자는 "주문 제출" 버튼을 클릭하여 주문을 제출하고 피드백 페이지로 이동할 수 있습니다. |
4.2.2 주문 기능 구현
그림 4.2 주문 관리 - 서명되지 않음
그림 4.3 주문 관리 - 서명됨
그림 4.4 주문 확인
그림 4.5 주문 확인 시 새 주소 사용
4.3 주문 관리
4.3.1 주문관리 기능 설계
이용자는 주문 확인 후, 이용자의 '내 주문'을 통해 주문 관리 페이지에 진입할 수 있으며, 이 페이지에서 주문 번호, 도서 종류, 도서 수량, 도서 소개 등 관련 정보를 확인할 수 있습니다.
액션 시퀀스 | 설명하다 |
---|---|
주문관리 들어가기 | 사용자는 메인 페이지에 진입한 후 '내 주문'을 클릭하여 주문 관리 페이지로 들어갈 수 있습니다. |
주문정보 보기 | 이용자는 주문번호, 포함 도서 종류, 도서 수량, 총 주문 가격, 도서 소개 등 주문 내역을 확인할 수 있습니다. |
물품 수령을 확인하다 | 사용자는 "수령 확인" 버튼을 클릭하여 미수령 주문을 수신 주문으로 변경할 수 있습니다. |
주문 삭제 | 사용자는 "주문 삭제" 버튼을 클릭하여 삭제하려는 서명된 주문을 삭제할 수 있습니다. |
도서 리뷰 | 사용자는 '댓글' 버튼을 클릭하여 단일 유형의 도서를 순서대로 평가할 수 있습니다. |
4.3.2 주문관리 기능 구현
그림과 같이 사용자는 메인 페이지에서 '내 주문'을 클릭하여 주문 관리 페이지로 들어갑니다.
그림과 같이 사용자는 내 주문 페이지에서 사용자의 주문 세부정보를 확인할 수 있습니다.
그림과 같이 사용자는 미수신 주문을 서명된 주문으로 변경할 수 있습니다.
그림과 같이 사용자는 삭제하고 싶은 서명된 주문을 삭제할 수 있습니다.
그림에 표시된 대로 사용자는 주문을 받은 도서 중 하나를 평가할 수 있습니다.
5.1 로그인
5.1.1 로그인 기능 설계
관리자는 페이지 하단의 관리자 로그인 인터페이스를 통해 관리자 로그인 모드로 들어갈 수 있으며, 로그인에 성공하면 모든 관리자 작업을 수행할 수 있습니다.
액션 시퀀스 | 설명하다 |
---|---|
로그인 인터페이스로 들어가세요 | 관리자는 페이지 하단의 "관리자 로그인"을 클릭한 후 로그인 인터페이스로 이동할 수 있습니다. |
로그인 | 관리자는 사용자 이름과 비밀번호를 입력하여 로그인할 수 있으며 입력란 정보는 필수입니다. |
로그인 성공 | 시스템에 성공적으로 로그인하면 관리자 작업 페이지가 나타나고 모든 관리자 작업을 수행할 수 있습니다. |
로그인 실패 | 로그인에 실패하면 시스템은 모든 입력 상자의 정보를 지우고 아무 작업도 수행하지 않습니다. |
로그인 취소 | 관리자가 로그인 취소를 클릭하면 해당 페이지는 초기 홈페이지로 이동합니다. |
5.1.2 로그인 기능 구현
그림 5.1 홈페이지 관리자 입구
그림 5.2 관리자 로그인
5.2 관리자 작업
5.2.1 관리자 운영 기능 설계
로그인에 성공한 후 관리자는 관리자 페이지에서 사용자 관리, 장부 관리 등 관리자 작업을 수행할 수 있습니다.
액션 시퀀스 | 설명하다 |
---|---|
관리자 페이지로 들어가세요 | 관리자가 성공적으로 로그인하면 관리자 페이지로 이동합니다. |
사용자 관리 | 관리자는 "사용자 관리"를 클릭한 후 키워드를 입력하여 사용자를 검색할 수 있으며, 검색된 사용자는 검색창 아래에 표시됩니다. 관리자는 삭제를 클릭하여 해당 사용자를 차단할 수 있습니다. |
책 추가 | 관리자는 '도서 추가'를 클릭한 후 도서 제목, ISBN, 저자, 카테고리, 출판사, 출판 시간, 가격, 표지, 소개 등 해당 정보를 입력하여 도서를 추가할 수 있습니다. |
도서 정보 수정 | '도서정보 수정'을 클릭하면 관리자가 키워드를 입력하여 도서를 검색할 수 있으며, 검색된 도서는 검색창 아래에 표시됩니다. 관리자는 "도서 삭제"를 클릭하여 해당 도서를 제거할 수 있습니다. 또한, "도서정보 수정"을 클릭하시면 팝업창에서 해당 도서의 정보를 수정하실 수 있습니다. |
5.2.2 관리자 운영 기능 구현
그림 5.3 관리자가 사용자를 검색하고 관리합니다.
그림 5.4 관리자가 도서 정보를 검색하고 수정하는 모습
그림 5.5 관리자가 책을 추가합니다.
6.1 데이터베이스 관계 다이어그램
6.2 전체 ER 다이어그램
6.3 사용자 모듈 ER 다이어그램
6.4 책 모듈 ER 다이어그램
6.5 주문 모듈 ER 다이어그램
6.6 코멘트 모듈 ER 다이어그램
7.1 사용자 테이블
표 7-1 사용자 테이블
필드 이름 | 데이터 유형 | 길이 | 설명하다 | 주목 |
---|---|---|---|---|
ID | 숫자 | 사용자 ID | PK | |
이름 | varchar | 20 | 사용자 이름 | |
권한 | varchar | 20 | 권한 | |
계정 | varchar | 20 | 계좌번호 | |
비밀번호 | varchar | 20 | 비밀번호 | 테이블에는 실제 비밀번호의 md5 값이 저장됩니다. |
성별 | varchar | 10 | 성별 | |
이메일 | varchar | 40 | 우편 |
7.2 주소 테이블
표 7-2 주소 테이블
필드 이름 | 데이터 유형 | 길이 | 설명하다 | 주목 |
---|---|---|---|---|
ID | 숫자 | 38 | 주소ID | PK |
이름 | varchar | 20 | 수취인 이름 | |
핸드폰 | varchar | 20 | 전화 | |
국가 | varchar | 20 | 국가 | |
주 | varchar | 20 | 주 | |
도시 | varchar | 20 | 도시 | |
구역 | varchar | 20 | 구역 | |
우편번호 | 숫자 | 10 | 우편번호 | |
user_id | 숫자 | 사용자 ID | ||
위치 | varchar | 100 | 특정 주소 |
7.3 라이브 테이블
표 7-3 라이브 테이블
필드 이름 | 데이터 유형 | 길이 | 설명하다 | 주목 |
---|---|---|---|---|
사용자_ID | 숫자 | 사용자 ID | PK, FK, 사용자 ID 참조 | |
주소_ID | 숫자 | 38 | 주소ID | PK, FK, 주소의 ID 참조 |
7.4 북 테이블
표 7-4 책 테이블
필드 이름 | 데이터 유형 | 길이 | 설명하다 | 주목 |
---|---|---|---|---|
ID | 숫자 | 38 | 도서 ID | PK |
ISBN | varchar | 20 | ISBN 예약 | |
이름 | varchar | 30 | 책 이름 | |
가격 | 숫자 | 가격 | ||
영상 | varchar | 40 | 이미지 경로 | |
범주 | varchar | 20 | 도서 분류 | |
발행자 | varchar | 100 | 출판사 | |
게시_시간 | varchar | 20 | 출판 시간 | |
추상적인 | varchar | 400 | 요약 |
7.5 작성자 테이블
표 7-5 작성자 테이블
필드 이름 | 데이터 유형 | 길이 | 설명하다 | 주목 |
---|---|---|---|---|
ID | 숫자 | 작성자 ID | PK | |
이름 | varchar | 20 | 이름 |
7.6 쓰기 테이블
표 7-6 쓰기 테이블
필드 이름 | 데이터 유형 | 길이 | 설명하다 | 주목 |
---|---|---|---|---|
작성자_ID | 숫자 | 작성자 ID | PK, FK, 작성자 ID 참조 | |
책_ID | 숫자 | 도서 ID | PK, FK, 도서 ID 참조 |
7.7 카테고리 테이블
표 7-7 항목표
필드 이름 | 데이터 유형 | 길이 | 설명하다 | 주목 |
---|---|---|---|---|
ID | 숫자 | 카테고리 ID | PK | |
이름 | varchar | 20 | 이름 |
7.8 소속 테이블
표 7-8 소속 테이블
필드 이름 | 데이터 유형 | 길이 | 설명하다 | 주목 |
---|---|---|---|---|
책_ID | 숫자 | 도서 ID | PK, FK, 도서 ID 참조 | |
카테고리_ID | 숫자 | 카테고리 ID | PK.FK, 카테고리 ID 참조 |
7.9 주문표
표 7-9 주문표
필드 이름 | 데이터 유형 | 길이 | 설명하다 | 주목 |
---|---|---|---|---|
ID | 숫자 | 주문 ID | PK | |
사용자_ID | 숫자 | 구매자 ID | FK, 사용자 ID 참조 | |
주소_ID | 숫자 | 주소ID | FK, 주소의 ID 참조 | |
수량 | 숫자 | 총 권수 | ||
가격 | 숫자 | 총 도서 가격 | ||
주목 | varchar | 100 | 주목 | |
시간_시작 | varchar | 20 | 주문 시간 | |
time_get | varchar | 20 | 수신 시간 | |
상태 | varchar | 20 | 주문 상태 | 도착했는지 안 도착했는지 |
post_cost | 숫자 | 특급 수수료 |
7.10 order_include 테이블
표 7-10 order_include 테이블
필드 이름 | 데이터 유형 | 길이 | 설명하다 | 주목 |
---|---|---|---|---|
주문_ID | 숫자 | 주문 ID | PK, FK, 주문 ID 참조 | |
책_ID | 숫자 | 도서 ID | PK, FK, 도서 ID 참조 | |
수량 | 숫자 | 책의 수 | ||
가격 | 숫자 | 이 책의 총 가격 |
7.11 즐겨찾기 목록
표 7-11 즐겨찾는 테이블
필드 이름 | 데이터 유형 | 길이 | 설명하다 | 주목 |
---|---|---|---|---|
사용자_ID | 숫자 | 사용자 ID | PK, FK, 사용자 ID 참조 | |
책_ID | 숫자 | 도서 ID | PK, FK, 도서 ID 참조 |
7.12 카트 테이블
표 7-12 카트 테이블
필드 이름 | 데이터 유형 | 길이 | 설명하다 | 주목 |
---|---|---|---|---|
사용자_ID | 숫자 | 사용자 ID | PK, FK, 사용자 ID 참조 | |
수량 | 숫자 | 장바구니에 담긴 총 도서 수 | ||
시간_시작 | varchar | 20 | 장바구니에 추가 시간 | |
post_cost | 숫자 | 특급 수수료 | ||
총 가격 | 숫자 | 총 비용 |
7.13 cart_include 테이블
표 7-13 cart_include 테이블
필드 이름 | 데이터 유형 | 길이 | 설명하다 | 주목 |
---|---|---|---|---|
사용자_ID | 숫자 | 사용자 ID | PK, FK, 사용자 ID 참조 | |
책_ID | 숫자 | 도서 ID | PK.FK, 도서 ID 참조 | |
수량 | 숫자 | 총 도서 수 | ||
총 가격 | 숫자 | 책의 총 가격 |
7.14 코멘트 테이블
표 7-14 코멘트 테이블
필드 이름 | 데이터 유형 | 길이 | 설명하다 | 주목 |
---|---|---|---|---|
ID | 숫자 | 댓글ID | PK | |
사용자_ID | 숫자 | 사용자 ID | FK, 사용자 ID 참조 | |
책_ID | 숫자 | 도서 ID | FK, 책의 ID를 참조 | |
제목 | varchar | 100 | 댓글 제목 | |
콘텐츠 | varchar | 2000 | 댓글 내용 | |
시간 | varchar | 20 | 댓글 시간 | |
점수 | 숫자 | 점수 | ||
total_like | varchar | 20 | 총 좋아요 수 | |
total_dislike | varchar | 20 | 총 반대 | |
총 | 숫자 | 38 | 좋아요를 누른 총 개수와 싫어요를 누른 총 개수의 차이 |
7.15 comment_feedback 테이블
표 7-15 comment_feedback 테이블
필드 이름 | 데이터 유형 | 길이 | 설명하다 | 주목 |
---|---|---|---|---|
사용자_ID | 숫자 | 사용자 ID | PK, FK, 사용자 ID 참조 | |
comment_ID | 숫자 | 댓글ID | PK, FK는 댓글의 ID를 의미합니다. | |
태도 | varchar | 20 | 이 리뷰에 대한 태도 | |
시간 | varchar | 20 | 평가 시간 |
이 클래스는 EF 구조의 엔터티 클래스를 나타내며 서버의 데이터베이스에 해당합니다. DBSet<> 유형의 각 멤버 변수는 데이터베이스의 관계 인스턴스에 해당하며 가져오기 및 설정 작업에 사용할 수 있습니다.
멤버 변수:
public virtual DbSet < ADDRESS > ADDRESS { get ; set ; }
public virtual DbSet < AUTHOR > AUTHOR { get ; set ; }
public virtual DbSet < BOOK > BOOK { get ; set ; }
public virtual DbSet < CART > CART { get ; set ; }
public virtual DbSet < CART_INCLUDE > CART_INCLUDE { get ; set ; }
public virtual DbSet < CATEGORY > CATEGORY { get ; set ; }
public virtual DbSet < COMMENT_FEEDBACK > COMMENT_FEEDBACK { get ; set ; }
public virtual DbSet < COMMENTS > COMMENTS { get ; set ; }
public virtual DbSet < ORDER_INCLUDE > ORDER_INCLUDE { get ; set ; }
public virtual DbSet < ORDERS > ORDERS { get ; set ; }
public virtual DbSet < USERS > USERS { get ; set ; }
public virtual DbSet < WRITE > WRITE { get ; set ; }
public virtual DbSet < CARTLIST > CARTLIST { get ; set ; }
public virtual DbSet < PURCHASE > PURCHASE { get ; set ; }
public virtual DbSet < ZUOZHE > ZUOZHE { get ; set ; }
이 유형의 클래스는 데이터베이스의 관계형 스키마에 해당합니다. 해당 멤버 변수는 관계형 스키마의 모든 속성과 해당 get 및 set 메소드뿐만 아니라 다른 관계 및 외부 코드 제약 조건과 해당 get에 의해 참조되는 레코드도 포함됩니다. 그리고 메소드를 설정합니다.
더 중요한 여러 클래스의 멤버 변수는 다음과 같습니다.
public decimal ID { get ; set ; } public string ISBN { get ; set ; } public string NAME { get ; set ; } public Nullable < decimal > PRICE { get ; set ; } public string IMAGE { get ; set ; } public string CATEGORY { get ; set ; } public string PUBLISHER { get ; set ; } public string PUBLISHTIME { get ; set ; } public string ABSTRACT { get ; set ; } //BOOK关系的属性 [ System . Diagnostics . CodeAnalysis . SuppressMessage ( "Microsoft.Usage" , "CA2227:CollectionPropertiesShouldBeReadOnly" ) ] public virtual ICollection < CART_INCLUDE > CART_INCLUDE { get ; set ; } //其主码被CART_INCLUDE所引用为外码约束,下面类似 [ System . Diagnostics . CodeAnalysis . SuppressMessage ( "Microsoft.Usage" , "CA2227:CollectionPropertiesShouldBeReadOnly" ) ] public virtual ICollection < COMMENTS > COMMENTS { get ; set ; } [ System . Diagnostics . CodeAnalysis . SuppressMessage ( " Microsoft . Usage " , "CA2227 : CollectionPropertiesShouldBeReadOnly " ) ] public virtual ICollection < ORDER_INCLUDE > ORDER_INCLUDE { get ; set ; } [ System . Diagnostics . CodeAnalysis . SuppressMessage ( "Microsoft.Usage" , "CA2227:CollectionPropertiesShouldBeReadOnly" ) ] public virtual ICollection < WRITE > WRITE { get ; set ; } [ System . Diagnostics . CodeAnalysis . SuppressMessage ( "Microsoft.Usage" , "CA2227:CollectionPropertiesShouldBeReadOnly" ) ] public virtual ICollection < CATEGORY > CATEGORY1 { get ; set ; } [ System . Diagnostics . CodeAnalysis . SuppressMessage ( "Microsoft.Usage" , "CA2227:CollectionPropertiesShouldBeReadOnly" ) ] public virtual ICollection < USERS > USERS { get ; set ; }
public decimal ID { get ; set ; } 、 public string NAME { get ; set ; } public string GENDER { get ; set ; } public string EMAIL { get ; set ; } public string PASSWORD { get ; set ; } public string ACCOUNT { get ; set ; } public string AUTHORITY { get ; set ; } //USERS关系的属性 [ System . Diagnostics . CodeAnalysis . SuppressMessage ( "Microsoft.Usage" , "CA2227:CollectionPropertiesShouldBeReadOnly" ) ] public virtual ICollection < ADDRESS > ADDRESS { get ; set ; } //其主码被ADDRESS引用,下面类似 public virtual CART CART { get ; set ; } [ System . Diagnostics . CodeAnalysis . SuppressMessage ( " Microsoft . Usage " , "CA2227 : CollectionPropertiesShouldBeReadOnly " ) ] public virtual ICollection < CART_INCLUDE > CART_INCLUDE { get ; set ; } [ System . Diagnostics . CodeAnalysis . SuppressMessage ( "Microsoft.Usage" , "CA2227:CollectionPropertiesShouldBeReadOnly" ) ] public virtual ICollection < COMMENT_FEEDBACK > COMMENT_FEEDBACK { get ; set ; } [ System . Diagnostics . CodeAnalysis . SuppressMessage ( "Microsoft.Usage" , "CA2227:CollectionPropertiesShouldBeReadOnly" ) ] public virtual ICollection < COMMENTS > COMMENTS { get ; set ; } [ System . Diagnostics . CodeAnalysis . SuppressMessage ( "Microsoft.Usage" , "CA2227:CollectionPropertiesShouldBeReadOnly" ) ] public virtual ICollection < ORDERS > ORDERS { get ; set ; } [ System . Diagnostics . CodeAnalysis . SuppressMessage ( "Microsoft.Usage" , "CA2227:CollectionPropertiesShouldBeReadOnly" ) ] public virtual ICollection < BOOK > BOOK { get ; set ; } [ System . Diagnostics . CodeAnalysis . SuppressMessage ( "Microsoft.Usage" , "CA2227:CollectionPropertiesShouldBeReadOnly" ) ] public virtual ICollection < ADDRESS > ADDRESS1 { get ; set ; }
public decimal USER_ID { get ; set ; }
public Nullable < decimal > QUANTITY { get ; set ; }
public string TIME_START { get ; set ; }
public Nullable < decimal > POST_COST { get ; set ; }
public Nullable < decimal > TOTAL_PRICE { get ; set ; } //CART关系的属性
public decimal USER_ID { get ; set ; }
public decimal BOOK_ID { get ; set ; }
public Nullable < decimal > QUANTITY { get ; set ; }
public Nullable < decimal > TOTAL_PRICE { get ; set ; } //CART_INCLUDED关系的属性
쿼리(예: 저자 및 도서에 해당하는 장바구니 및 주문에 대한 자세한 정보 쿼리)를 용이하게 하기 위해 데이터베이스에 일부 뷰를 설정했으며 이러한 뷰에는 다음과 같이 모델에 해당 클래스도 있습니다.
CART_INCLUDE 관계와 BOOK 관계를 기반으로 장바구니에 담긴 책의 정보와 구매상태를 알 수 있습니다.
public decimal USER_ID { get ; set ; }
public decimal BOOK_ID { get ; set ; }
public string NAME { get ; set ; }
public Nullable < decimal > PRICE { get ; set ; }
public string IMAGE { get ; set ; }
public Nullable < decimal > QUANTITY { get ; set ; }
public Nullable < decimal > TOTAL_PRICE { get ; set ; }
AUTHOR 관계, WRTIE 관계, BOOK 관계를 기반으로 도서 정보와 저자 정보가 집필 관계에 따라 매핑됩니다.
public string AUTHOR_NAME { get ; set ; }
public decimal BOOK_ID { get ; set ; }
public decimal AUTHOR_ID { get ; set ; }
ORDER_INCLUDE 관계에 따라 BOOK 관계가 생성되며, 주문한 도서의 정보와 구매현황을 알 수 있습니다.
public decimal ORDER_ID { get ; set ; }
public string NAME { get ; set ; }
public Nullable < decimal > PRICE { get ; set ; }
public string IMAGE { get ; set ; }
public Nullable < decimal > QUANTITY { get ; set ; }
public Nullable < decimal > TOTAL_PRICE { get ; set ; }
public string ABSTRACT { get ; set ; }
public string PUBLISHER { get ; set ; }
public string AUTHOR_NAME { get ; set ; }
public decimal ID { get ; set ; }
public decimal AUTHOR_ID { get ; set ; }
Controllers 클래스는 뷰 표시 페이지를 반환하고 페이지의 작업 요청에 응답하는 데 사용되는 컨트롤러의 클래스입니다. 핵심 문제는 컨트롤러와 뷰 간의 데이터 전송을 완료하는 것입니다. 컨트롤러에서 뷰로 전달하는 것은 주로 Razor 엔진을 사용하고, 뷰에서 컨트롤러로 전달하는 것은 HtmlHelpers, Session 및 AJAX를 사용합니다.
주로 도서 세부정보 페이지 표시 및 장바구니에 도서 추가 요청에 응답하는 방법이 포함됩니다. 회원 기능은 다음과 같습니다.
public ActionResult Index ( int ID ) //读取图书详情页面所需的所有数据,并返回视图进行展示,参数为图书ID
public ActionResult addCart ( cartSender cs ) //将该图书添加至用户购物车中,通过重定位刷新原页面,如果没有用户登录则不进行操作并跳转至登录页面,参数为利用HTTPPOST从视图传递数据的model
public int directAddCart ( int bookId ) //在首页将点击的图书添加至用户购物车,成功返回0,无用户登录则返回-1,参数为图书ID
여기에는 주로 즐겨찾기 페이지 표시와 즐겨찾기 변경 요청에 응답하는 방법이 포함됩니다. 이 컨트롤러의 모든 작업을 성공적으로 실행하려면 사용자가 로그인해야 합니다. 멤버 기능은 다음과 같습니다.
public ActionResult Index ( int ID ) //读取收藏夹页面所需的所有数据,并返回视图进行展示,在没有用户登录的情况下不进行操作并跳转至登录页面,参数为用户ID
public ActionResult addFav ( int ID ) //在图书详情页面将图书加入收藏夹,通过重定位刷新原页面,如果没有用户登录则不进行操作并跳转至登录页面,参数为图书ID
public int directAddFav ( int bookId ) //在首页将点击的图书添加至收藏夹,成功返回0,无用户登录则返回-1,参数为图书ID
public void DeleteFav ( int [ ] bookIds ) //将所有选中的图书移除收藏夹,参数为选中的图书的ID
여기에는 주로 장바구니 페이지 표시와 페이지의 모든 작업 요청에 응답하는 방법이 포함됩니다. 이 컨트롤러의 모든 작업을 성공적으로 실행하려면 사용자가 로그인해야 합니다. 멤버 기능은 다음과 같습니다.
public ActionResult Index ( int ID ) //读取购物车页面所需的所有数据,并返回视图进行展示,在没有用户登录的情况下不进行操作并跳转至登录页面,参数为用户ID
public void RemoveBook ( int bookId ) //将购物车中的某个图书项目移出购物车,参数为图书ID
public void AddFav ( int bookId ) //将购物车中的某个图书移入收藏并移出购物车,参数为图书ID
public void EditAmount ( int bookId , int bookAmount ) //通过购物车页面的加减按钮改变购物车中某一图书的数量,参数为用户ID和改变后的数量
public ActionResult AddAddress ( ADDRESS aDDRESS ) //响应购物车页面上方地址栏的添加新地址请求,参数为通过HTTPPOST传递的参数model
이는 주로 주문 관리 페이지와 주문 작성 및 완료 페이지의 표시와 이러한 페이지의 모든 작업 요청에 응답하는 방법을 포함합니다. 이 컨트롤러의 모든 작업은 사용자가 로그인해야 합니다. 회원 기능은 다음과 같습니다. 다음과 같습니다:
public ActionResult Index ( int ID ) //读取订单管理页面所需的所有数据,并返回视图进行展示,在没有用户登录的情况下不进行操作并跳转至登录页面,参数为用户ID
public void StatusChange ( int orderId ) //在订单管理页面确认收货,参数为订单ID
public void DeleteOrder ( int orderId ) //删除已经签收的订单,参数为订单ID
public void SetComment ( int bookId , int grade , string content ) //对已经签收的图书进行评论,参数为图书ID,分数和评论内容
public int GetOrder ( int [ ] bookIds ) //将购物车中勾选的书目添加至session,返回用户ID
public ActionResult Process_CART ( int ID ) //读取购物车结算时的购买情况,据此返回一个显示订单填写页面,参数为用户ID
public void check ( int addrId ) //根据选择的地址和购买情况生成订单,参数为地址ID
public ActionResult Order_Complete ( ) //显示订单填写成功的页面
주로 관리자 페이지를 표시하고 페이지의 모든 작업 요청에 응답하는 방법이 포함됩니다. 이 컨트롤러의 모든 작업에는 관리자 로그인이 필요합니다. 주요 구성원 기능은 다음과 같습니다.
public ActionResult Index ( string search_book , string search_user ) //返回管理员操作页面,参数为搜索的图书或用户的字符串
public ActionResult Login ( ) //返回管理员登录页面
public ActionResult Login ( LoginSender msg ) //管理员登录的验证,参数为利用HTTPPOST传递参数的model
public void deleteUser ( int ID ) //删除用户,参数为用户ID
public void deleteBook ( int ID ) //删除书籍,参数为图书ID
public void adjustBook ( int ID , string name , string ISBN , string writer , string category , string publisher , string time , string image , string intro ) //修改书籍