궁금한게 있습니다.
54
投稿した質問数 25
ManyToOne 이 N : 1이라는관계를 표현한다는건 이해가 가는데 그게 어떻게 User 객체와 user_id bigint 컬럼과 매핑이 되는지 잘 모르겠습니다. 대출기록이 여러개고 User 가 1개 라는 것과 저것이 무슨 연관인지 이해가 안갑니다ㅜ
回答 2
0
안녕하세요!! 🙂 질문 주셔서 감사합니다~
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 연관관계 질문입니다.
이 링크에서는 연결된 테이블 간의 관계와 매핑 과정을 자세히 설명하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
리액트 관련 질문이 있습니다.
0
60
2
스프링부트 버전
0
66
2
7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.
0
55
2
33강. UserLoanHistory의 관계성에 대한 질문
1
51
2
Java JDK 버전 문의의 건
0
126
2
ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.
0
81
3
h2 console 접속했을 테이블 질문
1
62
1
ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨
0
71
2
15강. updateUser() 질문
0
51
2
깃허브 질
0
77
2
여기까지 다 끝냈다고 하셨는데
0
75
2
왜안될까요
0
67
2
MySQL 창이안ㄴ뜹니다
0
53
2
포스트맨
0
46
1
spring 개념적인 질문
0
68
2
인텔리제이 샘플코드 실행 안됨 오류
0
138
2
aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다
0
81
1
마이그레이션 오류입니다.
0
165
3
Whitelabel Error Page 오류가 났습니다.
0
156
2
안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ
1
87
3
DTO 관련
0
66
2
궁금한게 있습니다!
0
60
2
35강에서 returnBook 에서 userLoanHistory 값 중복에 관하여
0
54
2
질문있습니다!
2
51
1

