has_many through e has_and_belongs_to_many

31 views
Skip to first unread message

Jorge Silveira

unread,
May 8, 2008, 4:40:49 PM5/8/08
to rails-br
e ai galerinha!

estou um pouco confuso com o uso destes dois meios...
se alguem souber explicar de maneira mais facil eu ia ficar felizao!

tipo..qdo usa um..e outro..pq usar um ou outro.vantagens..essas
coisas...

abraço galera

Giovanni Degani

unread,
May 8, 2008, 4:52:14 PM5/8/08
to rails-br
Recomendo este link caso ingles não seja problema:
http://blog.hasmanythrough.com/2006/4/20/many-to-many-dance-off

Um abraço,
Giovanni Degani

Lucas Húngaro

unread,
May 8, 2008, 5:20:11 PM5/8/08
to rail...@googlegroups.com
Cara, de forma bem simplista, é isso:

Has_and_belongs_to_many: use quando o relacionamento não tem relevância no seu modelo de domínio. Geralmente isso significa que a tabela que o representa tem como campos apenas as chaves primárias das duas tabelas relacionadas.

Has_many :through: use quando o relacionamento tem relavância no seu modelo de domínio. Geralmente isso significa que a tabela que o representa possui mais dados que você gostaria de armazenar. O exemplo clássico é: Usuário assina Revistas. Nesse caso, há uma entidade Assinatura fazendo o relacionamento. Ela é relevante em seu modelo de domínio pois, geralmente, você gostaria de armazenar dados como data de início da assinatura, número de exemplares etc.


2008/5/8, Jorge Silveira <jor...@gmail.com>:

Bruno Azisaka Maciel

unread,
May 8, 2008, 7:22:07 PM5/8/08
to rail...@googlegroups.com
Enxugando um pouco o que o Lucas disse:

habtm = Relacionamento N:N, somente com chaves primárias, nada mais.
hm through = habtm + quaisquer outros campos para dados que você precisará armazenar.

2008/5/8 Lucas Húngaro <lucash...@gmail.com>:

Seu Jorge ---

unread,
May 8, 2008, 9:09:16 PM5/8/08
to rail...@googlegroups.com
valeu galera..foi imensamente util...
 
e valeu pelo site ai...mto bom tb..
 
abraço

2008/5/8 Bruno Azisaka Maciel <bruno....@gmail.com>:

Luiz Carvalho

unread,
May 9, 2008, 10:04:25 AM5/9/08
to rails-br
Muito bom.
eu estava meio confuso com isso tbm.
obrigado

On 8 maio, 18:20, "Lucas Húngaro" <lucashung...@gmail.com> wrote:
> Cara, de forma bem simplista, é isso:
>
> Has_and_belongs_to_many: use quando o relacionamento não tem relevância no
> seu modelo de domínio. Geralmente isso significa que a tabela que o
> representa tem como campos apenas as chaves primárias das duas tabelas
> relacionadas.
>
> Has_many :through: use quando o relacionamento tem relavância no seu modelo
> de domínio. Geralmente isso significa que a tabela que o representa possui
> mais dados que você gostaria de armazenar. O exemplo clássico é:*
> Usuário*assina
> *Revistas*. Nesse caso, há uma entidade *Assinatura* fazendo o
> relacionamento. Ela é relevante em seu modelo de domínio pois, geralmente,
> você gostaria de armazenar dados como data de início da assinatura, número
> de exemplares etc.
>
> 2008/5/8, Jorge Silveira <jor...@gmail.com>:
>
>
>
> > e ai galerinha!
>
> > estou um pouco confuso com o uso destes dois meios...
> > se alguem souber explicar de maneira mais facil eu ia ficar felizao!
>
> > tipo..qdo usa um..e outro..pq usar um ou outro.vantagens..essas
> > coisas...
>
> > abraço galera
>
> --
> Lucas Húngaro
> Visite meu blog sobre Ruby on Rails:http://www.makemesimple.com/blog/
Reply all
Reply to author
Forward
0 new messages