반응형

 

 

이 글을 보는 사람들은 직접 상품 테이블이던 회원 테이블이던간에 직접 설계해서 제작할 일은 없을 것이다. 대부분 기존에 만들어져 있던 테이블을 수정해서 사용하는게 대부분이겠지.

 

어차피 여기서는 공부를 하는거니까 한번 설계부터 해보려 한다. 같이 해보자.

 

상품에는 필요한 값들이 너무너무 많다. 큰 쇼핑몰일수록 더 하겠지만 여기서는 그렇게 큰 규모의 쇼핑몰은 다루지 않는다. 간단한게 해보려고 하는데 너무 간단하게 하면 또 공부가 안될테니 적당하게 해보자. 늘 하는 얘기지만 이것은 진리가 아니오 길도 아니고 그냥 이런 방법도 있구나 생각하면 된다.

 

남이 설계한 디비나 남이 짠 소스가 마음에 들리가 없다.

 

자 우선 쇼핑몰에서 쇼핑하는 모습을 생각해보자. 상품명이 있고 상품 설명이 있고 또 상품의 고유번호가 있을것이다. 그리고 어떤 카테고리에 속해있는 제품인지 카테고리값도 넣어야하고 썸네일 이미지와 제품사진들 그리고 이 제품이 신제품인지 베스트인지등을 지정하는 값과 메인에 뺄건지 메인에 뺐을때 어디에 위치할것인지등등 정말 끝이 없다.

 

제품이 만약 api를 통해서 외부에서 들어온 제품이라면 상황은 더 복잡해 진다. 근데 그런건 하지 말자. 너무 복잡해진다. 

 

몇개만 더 해보자. 제품이 노출되는 기간을 정하는 경우도 있다. 또 매진, 품절, 판매중지등의 옵션도 있고 아 중요한 가격과 세일과 이벤트가등을 안했네.

 

이정도만 해도 엄청나다. 여기서 끝이 아니다. 갯수도 표시해야하고 창고가 여러개라면 어느 창고에 얼마가 있어야하는지도 구분해야하지만 그런것도 안할란다. 그냥 전체 갯수 판매갯수만 해보자.

 

status의 디폴트가 0인 이유는 기본적으로 제품을등록한다고 해서 바로 화면에 띄우지는 않기 때문이다.

 

자 이렇게 해서 나온 테이블이 아래와 같다.

 

CREATE TABLE `products` (
  `pid` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(500) NOT NULL,
  `cate` varchar(100) DEFAULT NULL,
  `content` text DEFAULT NULL,
  `thumbnail` varchar(100) DEFAULT NULL,
  `price` double DEFAULT NULL,
  `sale_price` double DEFAULT NULL,
  `sale_ratio` double DEFAULT NULL,
  `cnt` int(11) DEFAULT NULL,
  `sale_cnt` int(11) DEFAULT NULL,
  `isnew` tinyint(4) DEFAULT NULL,
  `isbest` tinyint(4) DEFAULT NULL,
  `isrecom` tinyint(4) DEFAULT NULL,
  `ismain` tinyint(4) DEFAULT NULL,
  `locate` tinyint(4) DEFAULT NULL,
  `userid` varchar(100) DEFAULT NULL,
  `sale_end_date` datetime DEFAULT NULL,
  `reg_date` datetime DEFAULT NULL,
  `status` tinyint(4) DEFAULT 0,
  `delivery_fee` double DEFAULT NULL,
  PRIMARY KEY (`pid`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4;

 

나중에 또 필요한 컬럼이 생긴다면 추가하면 된다. 그런거에 스트레스 받지 말자. 여기에 없는건 컬럼을 추가하거나 테이블을 추가하거나 해서 해결하면 된다.

 

테이블을 만들었으니 다음엔 제품 등록화면을 만들어보자.

반응형

+ Recent posts