Association에서 belongs_to와 has_one의 차이가 무엇인가요?

조회수 1297회

안녕하세요 루비온 레일즈를 공부하고 있는 학생입니다. 지금 ruby on rails에 대한 공부를 guides.rubyonrails.org 사이트에서 하고 있는데요

여기서 association쪽을 보고 있는데 belongs_to 가 있고 has_one이 있는데 이 두개의 차이가 무엇인가요?

제가 예상하기로는

A belongs_to B
C has_on D

위와 같이 있을 때 A는 B에 반드시 속해야하고,
C는 D를 가지거나 가지지 않을 수 있다. 로 이해했는데 맞는지 몰라서 이렇게 질문 올려봅니다!

------------------------------------- 좀더 공부 후 추가 합니다 ----------------

belongs_to와 has_one의 의미를 생각해서 추가해야하나 보군요 학생과 학번이 있다고 하면,

  • 학생은 하나의 학번을 가진다. (학생 has_one 학번 )
  • 학번은 하나의 학생에 속한다. (학번 belongs_to 학생 )

이런식으로 접근한다고 이번에는 이해를 했는데... 맞을런지 모르겠네요... ㅎ

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 맞게 이해하셨습니다.

    추가로 foreign key가 속해있는걸로 결정하실수 있습니다.

    "학생 has_one 학번" 이면 학번 테이블이 학생_id 칼럼을 가지고있습니다.(학생의 foreign key)

    "학번 belongs_to 학생" 이면 학번 테이블이 학생_id 칼럼을 가지고 있습니다( 학생의 foreign key)

    이와 같이 has, belongs_to 관계는 누가 어떤 테이블의 foreign key를 가지고 있는지에 따라 결정하실 수 있습니다~!

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)