[ 요구사항 ]
[사용자]
Woof에 회원가입을 할 수 있다
-> ID, PW, e-mail을 입력해야 한다
-> 동물유기를 미연에 방지하기 위해 보호자는 전화번호 인증, 실명인증(주민등록번호)을 받은 후 가입이 이루어진다
로그인을 할 수 있다
-> 아이디는 이메일로 비밀번호는 대문자, 소문자, 특수문자를 사용하여 10자리 이상으로 설정한다
반려동물을 등록할 수 있다
-> 반려동물 사진, 정보, 특이사항 필수 입력(종/나이/몸무게/성별/성격/알러지유무/중성화유무/특이사항(성격이소심하다,마킹을한다,먹는약이있다,큰소리에예민하다))
-> 불법 유기를 방지하기 위해 서비스를 받고자 하는 반려동물은 마이크로 내장칩이 필수로 이식되어 있어야 한다
원하는 시간대에 예약을 할 수 있다
-> 1시간 단위로 예약이 가능하고 중복 선택이 가능하다
사용한 업체에 대한 리뷰를 작성할 수 있고 사진을 올릴 수 있다
-> 리뷰 작성 시 최소 10글자 이상, 사진 선택, 별점 필수
마이페이지에서 개인정보를 수정 및 등록할 수 있다
-> 위급 시에 필요한 비상 연락처
장바구니를 이용해서 원하는 서비스를 담을 수 있다
구매내역을 통해 서비스 이용내역을 확인할 수 있다
검색을 할 수 있다
-> 카테고리, 기능, 원하는 상품(유치원, 병원, 미용실, woof 매니저) 등을 확인할 수 있다
회원가입시 쿠폰 등 혜택을 받을 수 있다
거주지와 가까운 서비스(유치원, 미용실, 병원) 추천받을 수 있다
적립금을 충전하고 적립금이 일정금액 이하가 되면 추가 결제 알림이 간다
->추가금액 대비 비상금
각 서비스 마다 요구사항을 작성할 수 있다
사용 금액에 따라 등급이 부여된다
-> 등급에 따라 쿠폰이 차등 지급된다
유치원의 교육프로그램을 선택할 수 있다
이전에 입력했던 정보를 저장해서 다음 이용시에 그대로 이용할 수 있다
-> 자주 사용하는 말로 즐겨찾기 가능
원하는 가게와 서비스를 즐겨찾기로 저장할 수 있다
-> 빠른 선택 가능
원하는 woof 매니저를 선택할 수 있다
-> 맡기는 반려동물의 상태에 따라 특정 성별을 어려워할 수 있기 때문에
-> 여자, 남자로 선택 가능, 미선택시 랜덤 배정
입력한 정보로 알림톡을 받아볼 수 있다
보호자의 부재가 n일 이상 지속될 경우 동물보호법 위반에 따라 처벌받을 수 있다
-> 사전에 동의서 작성
한 가구에서 다수의 반려동물 등록 시 적립금 할인쿠폰을 지급한다
보호대상(주니어, 시니어, 환자)은 추가금을 내고 그에 맞는 서비스를 받는다
남은 적립금은 10%의 수수료를 제외하고 돌려받을 수 있다
반려동물 인수/인계 시 인증받을 QR코드를 카카오톡으로 전송받는다.
[유치원]
사이트에 업체 등록을 할 수 있다
-> ID, PW, e-mail, 사업자등록증을 입력해야한다
예약한 고객 정보를 실시간 공유 받을 수 있다(예약시간, 연락처, 주소, 반려동물정보)
고객에게 알림 톡을 제공한다
-> 반려동물의 상태(프로그램 진행에 잘 따라오는지, 밥먹었는지...)를 실시간으로 알려준다
적립금으로 결제를 받는다
-> Woof에서 적립금을 돈으로 정산 받을 수 있다
-> 각 반려동물의 프로그램 명세서에 따라 결제금액을 적립금에서 가져간다
고객의 정보를 저장하고 관리할 수 있다
개설한 프로그램을 Woof에 게시할 수 있다
고객의 등급별로 나눠서 정보를 확인할 수 있다
별점이 일정 시간 이상 꾸준히 낮다면 상위 노출이 되지 않게 패널티를 부여 받는다
-> 별점이 2달이상 5점만점/ 4점 미만이라면 업체 추천에서 상위 노출이 되지 않게 패널티를 받는다
[병원]
병원은 사이트에 업체 등록을 할 수 있다
->ID, PW, e-mail, 사업자등록증을 입력해야한다
예약한 고객 정보를 실시간 공유받을 수 있다(예약 시간, 연락처, 주소, 반려동물 상태)
사용자에게 알림 서비스를 제공한다
->검진 내용, 병원비, 처방 내용
고객에게 알림톡을 전송할 수 있다
적립금으로 결제를 받는다
-> Woof에서 적립금을 돈으로 정산 받을 수 있다
-> 각 반려동물의 처치사항 명세서에 따라 결제금액을 적립금에서 가져간다
예약된 검진 사항과 다른 처치사항이 발견되면 고객에게 알린다
별점이 일정 시간 이상 꾸준히 낮다면 상위 노출이 되지 않게 패널티를 부여 받는다
-> 별점이 2달이상 5점만점/ 4점 미만이라면 업체 추천에서 상위 노출이 되지 않게 패널티를 받는다
[미용실]
미용실은 사이트에 업체 등록을 할 수 있다
-> ID, PW, e-mail, 사업자등록증을 입력해야한다
예약한 고객 정보를 실시간 공유받을 수 있다(예약 시간, 연락처, 주소, 강아지 상태)
사용자에게 알림 서비스를 제공한다
->미용 내역, 영수증
고객에게 알림톡을 전송할 수 있다
적립금으로 결제를 받는다
-> Woof에서 적립금을 돈으로 정산 받을 수 있다
-> 각 반려동물의 처치사항 명세서에 따라 결제금액을 적립금에서 가져간다
예약된 미용사항과 다른 처치사항이 발견되면 고객에게 알린다
별점이 일정 시간 이상 꾸준히 낮다면 상위 노출이 되지 않게 패널티를 부여 받는다
-> 별점이 2달이상 5점만점/ 4점 미만이라면 업체 추천에서 상위 노출이 되지 않게 패널티를 받는다
[Woof]
고객이 예약시간, 픽업 장소, 드랍장소, 이동시 원하는 이동장소, 이동시간, 강아지 정보, 연락처를 적고 원하는 서비스를 예약한다
고객이 이동서비스를 예약하면 매니저가 배정되고 이동서비스를 제공해준다
이동서비스 금액은 돈으로 결제를 받는다
고객이 적립금 충전 form에서 결제하면 그 금액을 수수료 3%를 제외하고 적립금으로 충전해준다
반려동물을 이동시킬 때 마다 고객에게 알림서비스를 제공한다
고객에게 알림톡을 전송할 수 있다
이동서비스에 대한 금액은 거리에 비례한다
-> 택시처럼 몇m 당 얼마
고객이 각 업체에서 예약을 할 때 총 금액의 5%를 수수료로 받는다
각 업체(유치원, 병원, 미용실)에 적립금을 돈으로 바꿔달라는 요청이 오면 돈으로 정산해준다
매니저1명이 1가구의 반려동물을 맡는다
-> 1가구에서 다수의 반려동물도 추가금을 내면 맡길 수 있다
실시간 위치 정보를 공유할 수 있다
매니저는 예약된 스케줄에 따라 반려동물을 이동시킨다
특정 업체의 별점이 2달이상 5점만점/ 4점 미만이라면 업체 추천에서 상위 노출이 되지 않게 패널티를 부여한다
노쇼 방지 예약금은 적립금으로 받는다
-> 20000원
예약한 고객은 담당자가 픽업장소에서 10분 기다리고, 10분이 지나면 노쇼로 간주한다
우프 매니저가 담당 동물의 상태를 실시간 공유한다
-> 사진첨부
고객에게 반려동물을 인계할때도 10분기다리고, 더 늦게 인계될시 하원 30분전까지 담당자에게 알려줘야함. 30분이상 늦으면 추가요금 청구
[ mysql workbench ]
찐 최종!!(맞는 코드는 아님, 외래키 몇개 생기면 RESERVATION에서 공구?버튼 눌러서 외래키 지워줘야함)
-- MySQL Script generated by MySQL Workbench
-- Thu Nov 16 19:06:09 2023
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering
CREATE TABLE web. CEO (
ID INT NOT NULL,
PW VARCHAR(45) NOT NULL,
e-mail VARCHAR(45) NOT NULL,
business license VARCHAR(45) NOT NULL,
phone number INT NOT NULL,
address VARCHAR(45) NOT NULL,
type VARCHAR(45) NOT NULL,
PRIMARY KEY (ID))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
-- Table web.USER
CREATE TABLE web. USER (
ID INT NOT NULL,
PW VARCHAR(45) NOT NULL,
e-mail VARCHAR(45) NOT NULL,
social security number VARCHAR(45) NOT NULL,
phone number INT NOT NULL,
PRIMARY KEY (ID))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
-- Table web.WOOF MANAGER
CREATE TABLE web.WOOF_MANAGER (
manager number INT NOT NULL,
gender VARCHAR(10) NOT NULL,
career VARCHAR(200) NULL,
car number VARCHAR(10) NOT NULL,
PRIMARY KEY (manager number))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4WOOF_MANAGER
COLLATE = utf8mb4_0900_ai_ci;
-- Table web.RESERVATION
CREATE TABLE web. RESERVATION (
number INT NOT NULL,
time VARCHAR(45) NOT NULL,
place VARCHAR(45) NOT NULL,
RESERVATION_status VARCHAR(45) NOT NULL,
CEO_ID INT NOT NULL,
USER_ID INT NOT NULL,
order INT NOT NULL,
PRIMARY KEY (number),
INDEX fk_RESERVATION_CEO1_idx (CEO_ID ASC) VISIBLE,
INDEX fk_RESERVATION_USER1_idx (USER_ID ASC) VISIBLE,
INDEX fk_RESERVATION_order1_idx (order ASC) VISIBLE,
CONSTRAINT fk_RESERVATION_CEO1
FOREIGN KEY (CEO_ID)
REFERENCES web.CEO (ID)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_RESERVATION_USER1
FOREIGN KEY (USER_ID)
REFERENCES web.USER (ID)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_RESERVATION_ORDER1
FOREIGN KEY (order)
REFERENCES web.WOOF_MANAGER (manager number)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
-- Table web.REVIEW
CREATE TABLE web.REVIEW (
number VARCHAR(45) NOT NULL,
rate INT NOT NULL,
picture VARCHAR(45) NULL,
comment VARCHAR(200) NULL,
comment time VARCHAR(200) NULL,
RESERVATION_number INT NOT NULL,
PRIMARY KEY (number),
INDEX fk_REVIEW_RESERVATION1_idx (RESERVATION_number ASC) VISIBLE,
CONSTRAINT fk_REVIEW_RESERVATION1
FOREIGN KEY (RESERVATION_number)
REFERENCES web.RESERVATION (number)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4REVIEW
COLLATE = utf8mb4_0900_ai_ci;
-- Table web.pet
CREATE TABLE web. PET (
number VARCHAR(45) NOT NULL,
speices VARCHAR(45) NOT NULL,
age INT NOT NULL,
gender VARCHAR(45) NOT NULL,
sickness VARCHAR(45) NOT NULL,
weight INT NOT NULL,
personality VARCHAR(45) NOT NULL,
USER_ID INT NOT NULL,
PRIMARY KEY (number),
CONSTRAINT USERfk_pet_USER1
FOREIGN KEY (USER_ID)
REFERENCES web.USER (ID)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
-- Table mydb.card
CREATE TABLE web. CARD (
card number INT NOT NULL,
USER_ID INT NOT NULL,
PRIMARY KEY (card number),
INDEX fk_card_USER1_idx (USER_ID ASC) VISIBLE,
CONSTRAINT fk_card_USER1
FOREIGN KEY (USER_ID)
REFERENCES web.USER (ID)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
<foreign키 무시하는법>
SET foreign_key_checks =0;
`` 쓰는 건 한 단어인데 띄어쓰기되어있을떄!!
''쓰는 건 숫자말고 글자쓸떄!!
[ ERD ]

[ 릴레이션 스키마 ]
