Closed f-lab-robert closed 2 years ago
orders와 product
- 주문과 상품의 관계를 생각하면 하나의 주문에는 여러 개의 상품이 속할 수 있고 하나의 상품은 여러 개의 주문에 속할 수 있기 때문에 N:M(다대다) 관계이다. N:M(다대다) 관계의 경우 두 테이블의 기본키를 컬럼으로 갖는 또 다른 테이블을 생성해서 관리해야 하기 때문에 product_orders를 생성해서 관리한다.
product와 category
- 주문과 상품의 관계와 동일하게 상품과 카테고리도 N:M(다대다) 관계이므로 category_product를 생성해서 관리한다.
account
- 회원 정보를 저장하는 테이블로 회원 가입과 로그인 할 때 사용된다.
- 이메일, 닉네임, 비밀번호, 등록자, 등록일자의 경우 NULL 값이 들어가면 안되므로 NOT NULL로 설정하였고 이메일의 경우 중복되면 안되는 데이터라 unique 설정을 하였다.
orders
- 회원의 주문 정보가 저장되는 테이블로 회원 ID가 외래키로 들어가며, 주문일자, 주문한 가격의 경우 NOT NULL로 설정하였다.
product_orders
- 주문과 상품의 관계가 N:M 관계이기 때문에 해당 테이블을 생성해서 관리하며, 주문 ID, 상품 ID가 외래키로 들어가고 주문한 상품 수량의 경우 NOT NULL로 설정하였다.
product
- 상품의 정보가 저장되는 테이블로 상품 정보에 대한 컬럼들은 NULL 값이 입력되면 안되므로 NOT NULL로 설정하였다.
product_images
- 상품의 이미지 정보가 저장되는 테이블로 상품 ID가 외래키로 들어가고 이미지 URL, 등록자, 등록일자의 경우 NOT NULL로 설정하였다.
category
- 카테고리의 정보가 저장되는 테이블로 카테고리, 소 카테고리, 등록자, 등록일자 의 경우 NULL 값이 입력되면 안되므로 NOT NULL로 설정하였다.
product_category
- 상품과 카테고리 관계가 N:M 관계이기 때문에 해당 테이블을 생성해서 관리하며, 상품 Id, 카테고리 ID가 외래키로 들어간다.
created_by / created_date
- 자료형 : VARCHAR(20)
created_date / updated_date
- 자료형 : DATETIME
- 해당 자료형으로 선택한 이유는 날짜와 시간을 모두 포함하고 있는 타입으로 '1000-01-01 00:00:00' 부터 '9999-12-31 23:59:59' 까지 입력 가능하기 때문에 해당 타입을 선택하였다.
[ Context ]
[ TO DO ]