본문 바로가기

하루정리

2022.06.15 파이널 프로젝트 코딩 시작 전 회의 때 정해진 테이블

식단 테이블에 있는 걸 그대로 넣고
 (사용자 선택지 : 추천받은 식단 루틴을 바로 찜 목록에 넣으시겠습니까?)
상품 상세페이지를 거치지 않고 바로 주문 및 결제 화면으로 넘어가도록 하면 편할 듯.
그렇다면 제품 상세페이지에서 수량을 선택하는 게 아니라 쿠팡처럼 결제 직전에 
수량을 각각 선택해서 주문하는 방식으로 진행해야 함. 
================================================
필요한 HTML(소비자)

ShoppionMain 쇼핑 인덱스 + ShoppionList 제품 목록 => 같은 화면에 나오게끔 만들기
ShoppionView 제품 상세페이지

ShoppionWishFrom 찜한상품 보기 페이지
ShoppingBasket 장바구니(쿠팡처럼. 장바구니에서 수량 결정하고 결제 누르면modal로 결제 ex)카카오 API띄워서 결제 등 으로 해도 됨. 그게 아니면 결제 페이지를 만들어야 함.)
ShoppingPayment 결제 페이지

Shoppinghistory 주문내역보기 (홈으로 가기버튼, 배송 조회 버튼, 상품 누르면 상품 상세페이지로 보내기)
ShoppingServiceCenter(고객센터 where  boardType=shopping(sql문이 아니라 페이지에서 전송하는 함수, shopping="쇼핑몰 문의") 해서 글을 보고 관리자가 댓글 혹은 처리 

============================================================
필요한 HTML(관리자)

ShoppingAdminMain(관리자 index)
ShoppingRegist(관리자 상품 등록)
 => 사진 여러장 등록 추가(앞글자가 ㅁㅁㅁ인 이미지파일 전부 보여주는 방식)
ShoppingAdminList(소비자 List그대로 가져옴)
ShoppingAdminView(관리자 상품 상세보기 수정 삭제 추가)
============================================================

productList 제품 목록
(ajax이용해서 선택한 상품만 보이도록 구성 ex닭가슴살, 달가슴살 스테이크, 닭가슴살 볶음밥 등 선택한 음식만 보이도록 해야 함.
상품 코드를 시퀀스로 넣었기 때문에 상품 코드를 만져야 할 듯 함. 얘기 나눠봐야 함. )
추가 기능(좋아요 또는 주문량, 판매량 등을 기준으로 보여주거나, 해야함. 

<미트리 참조>
(찜 목록에 넣을 경우 FORM ACTION으로 
내가 WISHLIST에 넣은 제품코드를 보내서 찜한 횟수 +1) 
=> SQL문 6개 생성 

============================================================

ShoppingView 제품 상세페이지

(제품 코드를 가져와서 상세페이지 보여줄 것)
주문시. 수량을 10개 25개 50개 100개 등으로 해서 수량 조절할 수 있도록 해야 하며 
코드는  

수량 선택시 ajax를 사용해서 (선택한 수량 X 가격)을 ajax가 계산해서 output

1번
상품 이름 ${product.Name}
상품 수량 <select onchange="orderQuantity(quantity) (펑션명)(펑션에 보낼 함수 이름)"
<option value="1">1개 </option>
<option value="10">10개</option>
<option value="25"> 25개 </option>
<option value="50">  50개</option>
<option value="100">100개 </option>

또는 
2번

상품 이름 ${product.Name}
상품 수량 <select onchange="orderQuantity(quantity) -  (펑션명)(펑션에 보낼 함수 이름)"
<option value="(1*${product.price}">1개 </option>
<option value="(10*${product.price}">10개</option>
<option value="(25*${product.price}">25개 </option>
<option value="(50*${product.price}">50개</option>
<option value="(100*${product.price}">100개 </option>

html에서 스크립트로 내리는 것이기에 2번이 좋을 듯 하고 


같은 식으로 하고 이 값을 어떻게 넣을건지 생각해 봐야 함. 
넣을 수 있음. ex) var (주문가격)= 0;
<script>
var 수량1= 1;
var 수량10= 10;
var 수량25= 25;
var 수량50= 50;
var 수량100= 100;

function orderQuantity(quantity){
var output=quantity;
============================================================
ShoppingServiceCenter(고객센터 where  boardType=shopping(sql문이 아니라 
페이지에서 전송하는 함수, shopping="쇼핑몰 문의") 해서 글을 보고 관리자가 댓글 혹은 처리 
============================================================

 

쇼핑몰 화면구성(소비자)

index 쇼핑몰 버튼 클릭 메소드 => shoppingMainForm
배너
이벤트 상품(상품 목록 조회수 별로 정리)
이벤트 배너

제품 상세보기
(미트리 제품 상세보기 참조 => 제품 가격 포함)
댓글기능


장바구니,찜한 상품 보기 
(미트리 장바구니 참조)

결제페이지
(미트리 주문결제페이지 참조)

찜 wihs에 있는 코드로 product 정보 불러오기  
1: mapper sql문을 6개 만든다. (6개가 다 없을 수 있음. 
2: service에서 for문으로 돌린다 !!(이게 제일 나음
문제 
찜 목록보기에서 내 찜 목록에 있는 코드는 불러 올 수 있음. 
그걸 전부 히든으로 두고. ajax 상시 발동으로 해 놓고 
각각 그 벨류를 바로 보내면 된다.  댓글이랑 비슷하다. 

추후 추천받은 식단을 바로 찜에 넣을 때도 같은 방식으로 해야 함. 

주문내역보기
(쿠팡주문내역보기)

 


--게시판 테이블 : BOARD
CREATE TABLE BOARD(
BOARDNO NUMBER PRIMARY KEY,         -- 게시글 번호(PK)
BOARDTYPE NVARCHAR2(5),             -- QNA / 정보공유 / 잡담 등등
BOARDNOTICE NVARCHAR2(5),           -- 공지사항O / 공지사항X
BOARDDATE DATE,                     -- 작성일
BOARDTITLE NVARCHAR2(50),           -- 글제목
BOARDWRITER NVARCHAR2(20),          -- 글작성자 (FK - MEMBERID)
BOARDCONTENT NVARCHAR2(1000),       -- 글내용
BOARDUPLOADFILENAME NVARCHAR2(100), -- 글첨부파일이름
BOARDHITS NUMBER                    -- 글조회수
);


--게시판댓글 테이블 : BOARDCOMMENTS
CREATE TABLE BOARDCOMMENTS(             
BOARDCOMMENTSBOARDNO NUMBER,            --게시판번호(FK - BOARDNO)
BOARDCOMMENTSNO      NUMBER  PRIMARY KEY,            --게시판댓글번호(PK)
BOARDCOMMENTSWRITER  NVARCHAR2(20),     --댓글작성자(FK - MEMBERID)
BOARDCOMMENTSCONTENT NVARCHAR2(100),    --댓글내용
BOARDCOMMENTSDATE DATE                  --댓글작성시간
);


--기업 리뷰테이블 : COMPANYREVIEW
CREATE TABLE COMPANYREVIEW(             
COMPANYCODE NVARCHAR2(6),               --기업코드 (FK - COMPANYCODE)
REVIEWNO NUMBER  PRIMARY KEY,           --리뷰번호
REVIEWWRITER NVARCHAR2(20),             --리뷰작성자 (FK - MEMBERID)
REVIEWCONTENT NVARCHAR2(500),           --리뷰내용
REVIEWDATE DATE,                        --리뷰작성일자
REVIEWRATE NUMBER                       --리뷰평점
);


 --기업 테이블 : COMPANY
CREATE TABLE COMPANY(              
COMPANYCODE NVARCHAR2(6)  PRIMARY KEY,   --기업코드(PK)
COMPANYID NVARCHAR2(20),            --기업회원아이디 (FK - MEMBERID)
COMPANYCOMMENT NVARCHAR2(200),      --기업설명
COMPANYPHOTONAME NVARCHAR2(100),    --기업사진이름
COMPANYRATE NUMBER,                 --기업평점
COMPANYEQUIPMENT NVARCHAR2(200)     --기업시설정보
);


--회원 테이블 : MEMBER
CREATE TABLE MEMBER(                
MEMBERNAME NVARCHAR2(10),           --회원이름
MEMBERID NVARCHAR2(20) PRIMARY KEY, --회원아이디 (PK)
MEMBERPW NVARCHAR2(100),            --회원비밀번호
MEMBERADDRESS NVARCHAR2(50),        --회원주소
MEMBERPHONE NVARCHAR2(15),          --회원연락처
MEMBERGENDER NVARCHAR2(2),          --회원성별
MEMBERBIRTH DATE,                   --회원생년월일
MEMBERHEIGHT NUMBER,                --회원신장
MEMBERWEIGHT NUMBER,                --회원몸무게
MEMBERPROFILENAME NVARCHAR2(100),   --회원프로필사진이름
MEMBERCOMPANYNAME NVARCHAR2(30),    --회원기업명
MEMBERROLE NVARCHAR2(10)            --회원역할
);
commit;
delete from member where memberid ='test';
commit;
select * from member;
select* from board;
INSERT INTO BOARD VALUES(SEQ_BOARD.NEXTVAL,'잡담','공지',SYSDATE,'제목','so01057','글내용','JYM.JPG',0); 
DROP SEQUENCE SEQ_BOARD;
SELECT * FROM BOARD WHERE  BOARDNO = 1;
UPDATE BOARD SET BoardHITS = BoardHITS+1 WHERE BOARDNO=1;
UPDATE BOARD SET  BOARDUPLOADFILENAME ='b038907c_download2.jpg' WHERE BOARDNO=1;

--회원권테이블 : MEMBERSHIP
CREATE TABLE MEMBERSHIP(            
MEMBERSHIPCOMPANYCODE NVARCHAR2(6) PRIMARY KEY, --기업코드(PK, FK - COMPANYCODE)
MEMBERSHIP1DAYPRICE NUMBER,         --1일 체험권가격
MEMBERSHIP1MONTHPRICE NUMBER,       --1달 회원권가격
MEMBERSHIP3MONTHPRICE NUMBER,       --3달 회원권가격
MEMBERSHIP6MONTHPRICE NUMBER,       --6달 회원권 가격
MEMBERSHIP1YEARPRICE NUMBER         --1년 회원권 가격
);


-- 운동 견적테이블 (운동/식단) : TRAININGPLAN
CREATE TABLE TRAININGPLAN(         
TRAININGPLANCODE NVARCHAR2(6) PRIMARY KEY,         --운동 견적 식별CODE (PK)
TRAININGPLANID  NVARCHAR2(20),         --운동 견적 식별ID (FK - MEMBERID)
TRAININGPLANPURPOSE NVARCHAR2(5),      --운동 견적 목적 (벌크업/다이어트)
TRAININGPLANGRADE   NVARCHAR2(5),      --운동 견적 등급 (초급/중급)
TRAININGPLANMYROUTINECODE NVARCHAR2(6),   --운동 루틴견적 코드 (FK - MYROUTINECODE)
TRAININGPLANMYMEALCODE    NVARCHAR2(6)    --운동 식단견적 코드 (FK - MYMEALCODE)
);


-- PT가격 테이블 : PERSONALTRAINING
CREATE TABLE PERSONALTRAINING(
PERSONALTRAININGCOMPANYCODE NVARCHAR2(6) PRIMARY KEY, --PT가격 코드 (PK)
PERSONALTRAINING1TIMEPRICE NUMBER,
PERSONALTRAINING10TIMEPRICE NUMBER,
PERSONALTRAINING20TIMEPRICE NUMBER,
PERSONALTRAINING30TIMEPRICE NUMBER
);


-- 회원 개인 운동 견적 테이블 : MYROUTINE
CREATE TABLE MYROUTINE(              
MYROUTINECODE NVARCHAR2(6) PRIMARY KEY,     --운동견적 테이블 식별코드
MYROUTINEDAY1CODE1 NVARCHAR2(6),
MYROUTINEDAY1CODE2 NVARCHAR2(6),
MYROUTINEDAY1CODE3 NVARCHAR2(6),
MYROUTINEDAY1CODE4 NVARCHAR2(6),
MYROUTINEDAY1CODE5 NVARCHAR2(6),
MYROUTINEDAY2CODE1 NVARCHAR2(6),
MYROUTINEDAY2CODE2 NVARCHAR2(6),
MYROUTINEDAY2CODE3 NVARCHAR2(6),
MYROUTINEDAY2CODE4 NVARCHAR2(6),
MYROUTINEDAY2CODE5 NVARCHAR2(6),
MYROUTINEDAY3CODE1 NVARCHAR2(6),
MYROUTINEDAY3CODE2 NVARCHAR2(6),
MYROUTINEDAY3CODE3 NVARCHAR2(6),
MYROUTINEDAY3CODE4 NVARCHAR2(6),
MYROUTINEDAY3CODE5 NVARCHAR2(6),
MYROUTINEDAY4CODE1 NVARCHAR2(6),
MYROUTINEDAY4CODE2 NVARCHAR2(6),
MYROUTINEDAY4CODE3 NVARCHAR2(6),
MYROUTINEDAY4CODE4 NVARCHAR2(6),
MYROUTINEDAY4CODE5 NVARCHAR2(6),
MYROUTINEDAY5CODE1 NVARCHAR2(6),
MYROUTINEDAY5CODE2 NVARCHAR2(6),
MYROUTINEDAY5CODE3 NVARCHAR2(6),
MYROUTINEDAY5CODE4 NVARCHAR2(6),
MYROUTINEDAY5CODE5 NVARCHAR2(6)
);

-- 회원 개인식단 테이블 : MYMEAL
CREATE TABLE MYMEAL(
MYMEALCODE NVARCHAR2(6) PRIMARY KEY,    --식단 식별코드 (PK)
MYMEALMORNINGCODE  NVARCHAR2(6),        --아침 식단 코드
MYMEALLAUNCHCODE   NVARCHAR2(6),        --점심 식단 코드
MYMEALDINNERCODE   NVARCHAR2(6),        --저녁 식단 코드
MYMEALMORNINGSNACKCODE NVARCHAR2(6),    --아침 간식 코드
MYMEALLAUNCHSNACKCODE  NVARCHAR2(6),    --점심 간식 코드
MYMEALDINNERSNACKCODE  NVARCHAR2(6),    --저녁 간식 코드
CONSTRAINT FK_MYMEALMORNINGCODE FOREIGN KEY (MYMEALMORNINGCODE) REFERENCES PRODUCT(PRODUCTCODE),
CONSTRAINT FK_MYMEALLAUNCHCODE FOREIGN KEY (MYMEALLAUNCHCODE) REFERENCES PRODUCT(PRODUCTCODE),
CONSTRAINT FK_MYMEALDINNERCODE FOREIGN KEY (MYMEALDINNERCODE) REFERENCES PRODUCT(PRODUCTCODE),
CONSTRAINT FK_MYMEALMORNINGSNACKCODE FOREIGN KEY (MYMEALMORNINGSNACKCODE) REFERENCES PRODUCT(PRODUCTCODE),
CONSTRAINT FK_MYMEALLAUNCHSNACKCODE FOREIGN KEY (MYMEALLAUNCHSNACKCODE) REFERENCES PRODUCT(PRODUCTCODE),
CONSTRAINT FK_MYMEALDINNERSNACKCODE FOREIGN KEY (MYMEALDINNERSNACKCODE) REFERENCES PRODUCT(PRODUCTCODE)
);



--운동(중급)테이블 : HARDTRAINING
CREATE TABLE HARDTRAINING(
HARDTRAININGCODE NVARCHAR2(6) PRIMARY KEY,  --중급운동코드 (PK)
HARDTRAININGNAME NVARCHAR2(15),             --중급운동이름
HARDTRAININGCOMMENT NVARCHAR2(100),         --중급운동요약
HARDTRAININGGIFNAME NVARCHAR2(100),         --중급운동GIF파일이름
HARDTRAININGPART NVARCHAR2(20)              --중급운동부위
);

--운동(초급)테이블 : EASYTRAINING
CREATE TABLE EASYTRAINING(
EASYTRAININGCODE NVARCHAR2(6) PRIMARY KEY,  --초급운동코드 (PK)
EASYTRAININGNAME NVARCHAR2(15),             --초급운동이름
EASYTRAININGCOMMENT NVARCHAR2(100),         --초급운동요약
EASYTRAININGGIFNAME NVARCHAR2(100),         --초급운동GIF파일이름
EASYTRAININGROUTINE NVARCHAR2(20)           --초급운동루틴 (등이두 / 가슴삼두 / 하체어깨)
);

select * from HARDTRAINING;

--상품테이블 : PRODUCT
CREATE TABLE PRODUCT(                       
PRODUCTCODE NVARCHAR2(6) PRIMARY KEY,       --상품코드 (PK)
PRODUCTNAME NVARCHAR2(20),                  --상품이름
PRODUCTWEIGHT NUMBER,                       --상품중량
PRODUCTKCAL NUMBER,                         --상품칼로리
PRODUCTCARBOHYDRATE NUMBER,                 --상품탄수화물
PRODUCTPROTEIN NUMBER,                      --상품단백질
PRODUCTFAT NUMBER,                          --상품지방
PRODUCTSALT NUMBER,                         --상품나트륨
PRODUCTPRICE NUMBER,                        --상품가격
PRODUCTLINK NVARCHAR2(100),                 --상품사이트링크
PRODUCTCOMMENT NVARCHAR2(100),              --상품설명
PRODUCTPHOTO NVARCHAR2(100),                --상품사진명
PRODUCTHITS NUMBER                          --조회수
);

select * from product;
insert into wish values('wnd010','pro001','pro002','pro003','pro004','pro005','pro006');

select *from wish;

CREATE TABLE ORDERS (
ORDERCODE                NVARCHAR2(10),        --주문코드
ORDERPRODUCTCODE        NVARCHAR2(6) ,  --상품코드 FK PRODUCTCODE
ORDERID                    NVARCHAR2(5) ,    --주문자아이디 FK MEMBERID
ORDERADDRESS            NVARCHAR2(30),            -- 배송지
ORDERINVOICENUMBER    NVARCHAR2(10),            -- 송장번호
ORDERREQUEST            NVARCHAR2(200),            -- 주문요청사항
ORDERDATE                DATE,                    -- 주문일
ORDERDELIVERY            NVARCHAR2(6),            -- 배송상황
ORDERDDAY                DATE,                    -- 배송일
ORDERPAYSELECT            NVARCHAR2(30)            -- 결제수단
);



CREATE TABLE PAY (
PAYID            NVARCHAR2(10),    -- 결제아이디 FK MEMBERID
PAYPOINT        NUMBER,                        -- 포인트
PAYLIST            NVARCHAR2(10)            -- 결제수단목록
);

-- WISH : 찜한목록 테이블
CREATE TABLE WISH(
WISHID               NVARCHAR2(10),  -- 찜한목록아이디
WISHMORNING          NVARCHAR2(6),   -- 아침
WISHLAUNCH           NVARCHAR2(6),   -- 점심
WISHDINNER           NVARCHAR2(6),   -- 저녁
WISHMORNINGSNACK     NVARCHAR2(6),   -- 아침간식
WISHLAUNCHSNACK      NVARCHAR2(6),   -- 점심간식
WISHDINNERSNACK      NVARCHAR2(6),   -- 저녁간식
CONSTRAINT FK_MEMBER2 FOREIGN KEY(WISHID) REFERENCES MEMBER(MEMBERID)
);




COMMIT;




DROP TABLE BOARD;
DROP TABLE BOARDCOMMENTS;
DROP TABLE COMPANY;
DROP TABLE COMPANYREVIEW;
DROP TABLE EASYTRAINING;
DROP TABLE HARDTRAINING;
DROP TABLE MEMBER;
DROP TABLE MEMBERSHIP;
DROP TABLE MYMEAL;
DROP TABLE MYROUTINE;
DROP TABLE PERSONALTRAINING;
DROP TABLE PRODUCT;
DROP TABLE TRAININGPLAN;




CREATE SEQUENCE SEQ_BOARD START WITH 1 INCREMENT BY 1;