728x90
개요
이 글은 JPA를 테스트 하기 위하여 E-commerce 컨셉으로진행하며 JPA(Java Persistence API)를 여러 상황에서 사용한 경험을 공유 할려고 합니다.
목표
- JPA
- JPA를 Spring Boot에 적용 하며 가독성 높은 코드 구성
- 엔티티 매핑
- 조회와 검색
- 트랜잭션 관리
- 성능 최적화
- 데이터베이스 설계
- 최대한 RDS에서 여러 상황이 나올수 있도록 구성
- 테이블 구조, 관계 설정, 인덱싱 등을 포함
구성
GIT
현재 셋팅 중이니 추후 코드를 참고해 주시면 감사하겠습니다.
GITHUB : jpa-e-commerce
Mysql
sql문은 실시간으로 변경 될수 있으며 계속 해서 변경할 예정입니다.
최근 SQL 및 RDS구조는 ERD _CLOUD_ECOMMERCE 를 참고 해주시면 감사하겠습니다.
CREATE TABLE `products` (
`Key` INT NOT NULL,
`name` VARCHAR(50) NOT NULL,
`price` DECIMAL(10,2) NOT NULL,
`reg_date` DATE NOT NULL,
`mod_date` DATE NULL
);
CREATE TABLE `categories` (
`id` INT NOT NULL,
`name` VARCHAR(50) NOT NULL,
`reg_date` DATE NOT NULL,
`mod_date` DATE NULL
);
CREATE TABLE `transit` (
`id` VARCHAR(100) NOT NULL,
`order_id` INT NOT NULL,
`transit_date` DATE NOT NULL,
`reg_date` DATE NOT NULL,
`mod_date` DATE NULL
);
CREATE TABLE `orders` (
`id` INT NOT NULL,
`product_id` INT NOT NULL,
`quantity` INT NOT NULL,
`order_date` DATE NOT NULL,
`reg_date` DATE NOT NULL,
`mod_date` DATE NULL
);
CREATE TABLE `order_statuses` (
`id` INT NOT NULL,
`order_id` INT NOT NULL,
`status` VARCHAR(50) NULL,
`reg_date` DATE NOT NULL,
`mod_date` DATE NULL
);
CREATE TABLE `transit_status` (
`id` INT NOT NULL,
`transit_id` VARCHAR(100) NOT NULL,
`status` VARCHAR(45) NOT NULL,
`reg_date` DATE NOT NULL,
`mod_date` DATE NULL
);
CREATE TABLE `product_categories` (
`category_id` INT NOT NULL,
`product_id` INT NOT NULL,
`reg_date` DATE NOT NULL,
`mod_date` DATE NULL
);
ALTER TABLE `products` ADD CONSTRAINT `PK_PRODUCTS` PRIMARY KEY (
`Key`
);
ALTER TABLE `categories` ADD CONSTRAINT `PK_CATEGORIES` PRIMARY KEY (
`id`
);
ALTER TABLE `transit` ADD CONSTRAINT `PK_TRANSIT` PRIMARY KEY (
`id`
);
ALTER TABLE `orders` ADD CONSTRAINT `PK_ORDERS` PRIMARY KEY (
`id`
);
ALTER TABLE `order_statuses` ADD CONSTRAINT `PK_ORDER_STATUSES` PRIMARY KEY (
`id`
);
ALTER TABLE `transit_status` ADD CONSTRAINT `PK_TRANSIT_STATUS` PRIMARY KEY (
`id`
);
728x90
'BackEnd > Spring Boot' 카테고리의 다른 글
JPA GenerationType 속성 (0) | 2023.06.09 |
---|---|
JPA의 ddl-auto 속성과 그 특징 (0) | 2023.06.09 |
JPA란? (0) | 2023.05.21 |
영속성 이란? (0) | 2023.05.21 |
JPA Entity 작성_1 (공통, 같은 테이블) (0) | 2023.05.15 |