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 ( cidx INT NOT NULL AUTO_INCREMENT, id VARCHAR(45) CHARACTER SET ‘utf8’ NULL COMMENT ‘장바구니 사용하는 회원 아이디’, pnum VARCHAR(45) NULL COMMENT ‘상품번호 ‘, quantity INT NULL COMMENT ‘카트에 담긴 수량’, result CHAR NULL DEFAULT ‘1’ COMMENT ‘배송유무 \n배송 전 : 1 (default)\n배송 후 : 2’, cartdate DATE NULL COMMENT ‘카트 담은 날짜’, PRIMARY KEY (cidx)) COMMENT = ‘장바구니 테이블’;

카테고리:

업데이트: