[gorm]belong to와 has one의 차이점은 무엇일까?
belong to란
Select 하고자 하는 테이블이 참조(Association)하고자 하는 테이블의 ID를 가지고 있는 경우.
| User | Company |
| ID int | ID int |
| Name string | Name string |
| CompanyID int | |
| Company Company |
has one이란
Select 하고자 하는 테이블이 참조(Association)하고자 하는 테이블의 ID를 가지고 있지 않은 경우.
| User | Company |
| ID int | ID int |
| Name string | Name string |
| CompanyID int | |
| Company Compnay |
즉, belong to와 has one의 차이는 어떤 테이블을 셀렉트 대상으로 잡느냐에 따라 다르다.
#12150
has Many와 Many to Many는 무엇일까?
has Many란?
Select 하고자 하는 테이블이 참조(Association)하고자 하는 테이블의 ID의 배열을 가지고 있는 경우.
| User | CreditCard |
| ID int | ID int |
| CreditCards []CreditCard | Number string |
| UserID uint |
Many to Many란?
Select 하고자 하는 테이블이 참조(Association)하고자 하는 테이블의 ID의 배열을 가지고 있고 참조 테이블 역시 Select 하고자하는 테이블을 배열로 가지고 있는 경우.
| User | Language |
| ID int | ID int |
| Language []Language | Number string |
| Users []*User |
gorm 태그
`gorm:"many2many:user_languages;"` 를 사용하여 매핑할 수 있습니다.