강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của eovnfjfpa4963
eovnfjfpa4963

câu hỏi đã được viết

Tạo máy chủ đầu tiên của bạn bằng Java và Spring Boot Bất kỳ ai cũng có thể dễ dàng chuyển từ giai đoạn phát triển sang triển khai! [Gói phát triển máy chủ tất cả trong một]

Bài 33. Liệu chúng ta có thể phát triển theo hướng đối tượng hơn một chút không?

궁금한게 있습니다.

Viết

·

52

0

ManyToOne 이 N : 1이라는관계를 표현한다는건 이해가 가는데 그게 어떻게 User 객체와 user_id bigint 컬럼과 매핑이 되는지 잘 모르겠습니다. 대출기록이 여러개고 User 가 1개 라는 것과 저것이 무슨 연관인지 이해가 안갑니다ㅜ

javaspringawsmysqlspring-bootjpa

Câu trả lời 2

0

lannstark님의 프로필 이미지
lannstark
Người chia sẻ kiến thức

안녕하세요!! 🙂 질문 주셔서 감사합니다~

1 : N 이란 표현은 이해해주셨는데요~~ 이렇게 생각하시면 되어요!

  • A 데이터가 B 데이터 N개와 연결될 수 이으면 1 : N 관계이다.

  • 즉, 한 유저는 대출 기록 여러개를 가질 수 있죠

  • 반대로 한 유저는 주민등록번호를 반드시 1개만 가질 수 있으므로 1 : 1 관계라고 할 수 있을거에요!

 

자 다음으로

그게 어떻게 User 객체와 user_id bigint 컬럼과 매핑이 되는지 잘 모르겠습니다

라고 해주셨는데요!

JPA를 사용하게 되며

@Entity가 붙은User 클래스는 테이블과 매핑이 됩니다.

객체에서는 long id 로 표현된 데이터가 실제 데이터베이스에는 bigint id 로 저장되는 것이죠


여기까지 이해가 되셨다면, 이제 1번 유저가 있다고 생각해 보겠습니다.

User 클래스의 id 필드에는 1이 들어 있고, user 데이터베이스 id 필드에도 1이 들어 있습니다.

 

이 유저가 100번 책과 110번 책 2권을 빌렸다면 대출 기록은 이렇게 생겼을거에요!

단순화한 대출 기록 스키마 = (user_id, 책 id)

  • (1, 100) -> 1번 유저가 100번 책을 빌렸다

  • (1, 105) -> 1번 유저가 105번 책을 빌렸다

이렇게 되면 유저 테이블에는 데이터가 1줄 들어 있겠고, 대출 기록 테이블에는 데이터가 2줄 들어있겠네요~

 

많은 개념이 동시에 들어오며 1:N 이라는 워딩, 그것이 데이터베이스에서 표현되는 방법론에 대해서 질문 주신 것 같아요! 답변의 흐름을 따라 하나씩 이해해보고, 직접 실행하며 데이터를 확인해보시면 이해가 더욱 잘 되실거에요!

답변이 도움이 되었으면 좋겠습니다. 감사합니다. 🙇

 

0

안녕하세요, 인프런 AI 인턴입니다. eovnfjfpa님.

ManyToOne 관계에서의 매핑은 객체 지향 프로그래밍에서 자주 사용되는 개념으로, 데이터베이스에서 외래 키(Foreign Key)를 통해 연결된 테이블 간의 관계를 표현합니다. 이 관계는 User 객체가 여러 대출기록(Entity)과 연결될 수 있다는 것을 의미합니다.

ManyToOne 설명:
- ManyToOne: 여러 개의 대출기록(UserLoanHistory) 엔티티가 하나의 User 엔티티와 연관될 수 있는 관계입니다. 예를 들어, 한 명의 사용자가 여러 권의 책을 빌릴 수 있는 상황을 상상해 볼 수 있습니다. 이 때, 각 대출 기록은 특정 사용자를 참조하게 됩니다.

매핑 설명:
- 객체 매핑: 스프링에서 JPA를 사용하여 ManyToOne 관계를 매핑할 때, User 클래스 내 user_id는 외래 키로서 여러 UserLoanHistory 엔티티에서 참조됩니다. 이로써 여러 대출기록이 각각 동일한 사용자와 연결되어 있는 구조가 됩니다.
- SQL 테이블 및 컬럼: 데이터베이스에서는 각각의 UserLoanHistory 테이블에 user_id라는 컬럼이 주어져 User 테이블의 기본 키와 관계를 맺고 있습니다. 이 컬럼을 통해 데이터베이스는 여러 대출기록이 하나의 사용자와 연관성을 갖게 됩니다.

관련된 개념에 대한 보다 자세한 설명이 필요하시다면, 아래 유사한 질문을 참조해보시는 것도 도움 될 것입니다.
- JPA 연관관계 질문입니다.

이 링크에서는 연결된 테이블 간의 관계와 매핑 과정을 자세히 설명하고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Hình ảnh hồ sơ của eovnfjfpa4963
eovnfjfpa4963

câu hỏi đã được viết

Đặt câu hỏi