GO

[Go]GORM belong to와 has one의 차이점은 무엇일까?

[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;"` 를 사용하여 매핑할 수 있습니다.
최신글