Associações "Has Many" em Go com GORM
Associações "has many" são um tipo de relação entre duas tabelas em um banco de dados, onde uma linha em uma tabela pode estar associada a várias linhas em outra tabela. Isso é extremamente útil para modelar relacionamentos um-para-muitos em nossas aplicações.
Como Usar "Has Many" com GORM:
Com o GORM, podemos definir associações "has many" entre duas estruturas de dados usando tags específicas. Vamos ver um exemplo prático para entender melhor.
Exemplo Prático:
Digamos que temos duas entidades: User (Usuário) e Post (Postagem). Cada usuário pode ter várias postagens associadas. Vamos criar esses modelos e definir a associação "has many" entre eles.
type User struct {
gorm.Model
Name string
Posts []Post `gorm:"foreignKey:UserID"`
}
type Post struct {
gorm.Model
UserID uint
Title string
Body string
}
Aqui, no modelo User, estamos definindo uma associação "has many" com Post. A tag gorm:"foreignKey:UserID" especifica que a chave estrangeira para o usuário está em UserID.
Criando e Recuperando Dados::
Vamos ver como podemos criar e recuperar dados associados usando o GORM:
// Criando um novo usuário com várias postagens associadas
user := User{
Name: "Alice",
Posts: []Post{
{
Title: "Primeira Postagem",
Body: "Conteúdo da primeira postagem"
},
{
Title: "Segunda Postagem",
Body: "Conteúdo da segunda postagem"
}
}
}
db.Create(&user)
// Recuperando um usuário e suas postagens associadas
var alice User
db.Preload("Posts").First(&alice, 1)
Usar associações em GORM para criar relações entre modelos de dados em nossas aplicações nos permite estruturar nossos dados de forma mais eficaz e criar aplicações mais poderosas e flexíveis.
Até a próxima!
Comentários
Postar um comentário