데이터 설계와 연관관계

Eugenius1st·2026년 9월 17일

Spring

목록 보기
4/5
```sql
-- orders 테이블
CREATE TABLE orders
(
    id          BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
    user_id     BIGINT         NOT NULL,
    total_price DECIMAL(10, 2) NOT NULL,
    status      VARCHAR(20)    NOT NULL,
    created_at  TIMESTAMP               DEFAULT CURRENT_TIMESTAMP,
    updated_at  TIMESTAMP      NOT NULL DEFAULT CURRENT_TIMESTAMP
);
```

orders가 user_id를 가짐으로서 관계 정의가 되고 join이 가능한 것이 연관관계이다.
user입장에서는 order의 id 여러개를 가질 수 있다.

1:N 이라고한다. 하나의 row가 N개의 row를 가지는 것을 말한다.

이를 엔티티에서 표현해야한다.

1. user관점에서 order 표현

2. order관점에서 user 표현

N:N 을 표현하는 설계 원칙

user 과 order 가 N:N이라면
1:N 을 중첩시킬 수 있는 mapping table을 만들어야 한다.

profile
자신만의 속도로

0개의 댓글