쇼핑몰 프로젝트 시작하기 2
DB 설계해보기
- 개인 프로젝트로 여러 시행착오를 겪을 예정이기에 우선 DB테이블과 칼럼을 설계해보기로했다.
테이블 설정
1) Member 테이블
2) Product 테이블
3) Order 테이블
4) Cart 테이블
5) WishList 테이블 - 추후
6) Coupon 테이블 - 추후
- 약 4개의 테이블을 기준으로 설계를 하고 추가로 회원 등급별 쿠폰이나 관리자 테이블을 두어 기능을 추가해야겠다.
테이블 별 칼럼
1) Member table
- 회원 인덱스 (pk)
- 회원 아이디
- 회원 비밀번호
- 회원 성명
- 회원 나이
- 회원 이메일
- 회원 생일
- 회원 성별
CREATE TABLE `shop`.`member` (
`idx` INT NOT NULL AUTO_INCREMENT,
`id` VARCHAR(45) NOT NULL,
`passwd` VARCHAR(45) NOT NULL,
`name` VARCHAR(45) NOT NULL,
`age` INT NOT NULL,
`email` VARCHAR(45) NULL,
`birth` DATE NULL,
`gender` CHAR NULL,
PRIMARY KEY (`idx`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COMMENT = '회원 테이블\n';
2) Product 테이블
- 상품의 인덱스 (pk)
- 상품 이름
- 상품 수량
- 상품 가격
CREATE TABLE `shop`.`product` (
`pidx` INT NOT NULL AUTO_INCREMENT,
`pname` VARCHAR(45) NOT NULL,
`quantity` INT NOT NULL,
`price` INT NOT NULL,
'createdAt' DATE NULL,
PRIMARY KEY (`pidx`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COMMENT = '상품 테이블';
3) 주문 테이블
- 주문번호 (pk)
- 주문하는사람ID
- 주문날짜
CREATE TABLE `shop`.`order` (
`oidx` INT NOT NULL AUTO_INCREMENT,
`id` VARCHAR(45) NOT NULL,
`orderdate` DATE NULL,
PRIMARY KEY (`oidx`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COMMENT = '주문 테이블';
4) 장바구니 테이블
- 장바구니 id (pk)
- 회원 id (fk)
- 상품 id (fk)
- 상품 수량
- 장바구니 담긴 날짜
CREATE TABLE
shop.cart(cidxINT NOT NULL AUTO_INCREMENT,idVARCHAR(45) CHARACTER SET ‘utf8’ NULL COMMENT ‘장바구니 사용하는 회원 아이디’,pnumVARCHAR(45) NULL COMMENT ‘상품번호 ‘,quantityINT NULL COMMENT ‘카트에 담긴 수량’,resultCHAR NULL DEFAULT ‘1’ COMMENT ‘배송유무 \n배송 전 : 1 (default)\n배송 후 : 2’,cartdateDATE NULL COMMENT ‘카트 담은 날짜’, PRIMARY KEY (cidx)) COMMENT = ‘장바구니 테이블’;