1. 필요시 설계해둔 Entity 수정
2. 해당 Entity를 담을 mariadb Table 설계
3. 설계한 테이블 DB에 Create
4. 테이블 생성 후, 예시 데이터 insert
🔥 일단 내가 설계해 둔 Entity 살펴보기
package com.delivery.entity;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.persistence.*;
@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Food {
@Id
@GeneratedValue(strategy = GenerationType.AUTO.IDENTITY)
private Long id; //음식 id,pk
@Column(nullable = false)
private String name; //음식 이름
@Column(nullable = false)
private int price;// 음식 가격
@Column(nullable = false)
private String category; // 음식 카테고리
@Column(nullable = false)
private String description; // 음식 설명
@Column(nullable = false)
private String imageUrl; // 음식 사진 url
@Column(nullable = false)
private int quantity; // 음식 수량
}
일단 테이블을 만들려면 Food Entity의 속성과 관계를 왕창 뜯어봐야할 것 같다....!
id 속성은 pk, 자동 증가하기 때문에 AUTO_INCREMENT 옵션 必
name, price, category, description, imageUrl, quantity 속성은 모두 테이블 컬럼으로 추가
- id는 각 음식의 고유한 식별자로, BIGINT 타입으로 정의
- NOT NULL 제약 조건이 적용되어 있어서, id 값은 NULL이 될 수 없음!
- AUTO_INCREMENT 속성이 적용되어 있어서, 이 컬럼의 값은 자동으로 1씩 증가하는 값으로 설정
- 다만, id를 LONG 타입으로 정의하려고 했으나 mariadb 사용으로 BIGINT 타입으로 정의
- name은 음식의 이름을 저장하기 위한 컬럼
- VARCHAR(255) 타입으로 정의.
- NOT NULL 제약 조건이 적용되어 있어, name 값은 NULL이 될 수 없음!
- price는 음식의 가격을 저장하기 위한 컬럼
- INT(11) 타입으로 정의
- NOT NULL 제약 조건이 적용되어 있어, price 값은 NULL이 될 수 없음
- category는 음식의 카테고리를 저장하기 위한 컬럼
- VARCHAR(255) 타입으로 정의
- NOT NULL 제약 조건이 적용되어 있어, category 값은 NULL이 될 수 없음
- description은 음식에 대한 설명을 저장하기 위한 컬럼
- TEXT 타입으로 정의
- NOT NULL 제약 조건이 적용되어 있어, description 값은 NULL이 될 수 없음
- imageUrl은 음식의 이미지 URL을 저장하기 위한 컬럼
- VARCHAR(255) 타입으로 정의
- quantity는 음식의 수량을 저장하기 위한 컬럼
- INT(11) 타입으로 정의
- NOT NULL 제약 조건이 적용되어 있어, quantity 값은 NULL이 될 수 없음
🛒 그렇다면 위 내용을 배경으로 설계된 테이블은?
CREATE TABLE food (
id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
price INT(11) NOT NULL,
category VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
imageUrl VARCHAR(255),
quantity INT(11) NOT NULL
);
일단 이미지 url은 not null로 설정 하지 않고 예시 데이터를 넣을 때도 빼뒀다.
예시 코드는 배달의 민족 - 프랭크버거에서 참고해 작성했다!
INSERT INTO food (name, price, category, description, quantity) VALUES
('더블치즈버거', 7300, '햄버거', '100% 소고기 수제 패티와 체다치즈가 적절히 어우러진 인기 있는 메뉴입니다.', 50),
('콜라', 2000, '음료', '탄산음료 중 하나로 상큼한 맛이 특징입니다.', 100),
('감자튀김', 2500, '디저트', '크리스피 슈스트링 감자의 바삭한 식감이 일품인 메뉴입니다.', 30);
짜잔 이렇게 insert 까지 완료!
'개발공간 > Project' 카테고리의 다른 글
❓SpringBoot @NotEmpty 적용 안될때 (0) | 2023.04.25 |
---|---|
🛒 Controller - Service - Repository 만들기 (0) | 2023.04.19 |
test (0) | 2023.03.28 |