Associações "Has One" em Go com GORM

Associações "Has One" em Go com GORM

Associações "has one" são um tipo de relação entre duas tabelas em um banco de dados, onde uma tabela pode ter no máximo uma linha associada em outra tabela. É o oposto da relação "belongs to".

Como Usar "Has One" com GORM

No GORM, podemos definir associações "has one" 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 Profile (Perfil). Cada usuário tem apenas um perfil associado. Vamos criar esses modelos e definir a associação "has one" entre eles.

    
      type User struct {
        gorm.Model
        Name    string
        Profile Profile `gorm:"foreignKey:UserID"`
    }

    type Profile struct {
        gorm.Model
        UserID uint
        Bio    string
    }
    
  

Aqui, no modelo User, estamos definindo uma associação "has one" com Profile. 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 perfil associado
    user := User{Name: "Alice", Profile: Profile{Bio: "Desenvolvedora"}}
    db.Create(&user)

    // Recuperando um usuário e seu perfil associado
    var alice User
    db.Preload("Profile").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.

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

Postagens mais visitadas deste blog

O outro lado do Ruby

Entendendo Estruturas de Dados: O Que São e Por Que São Importantes?

Entendendo a Notação Big O em Go