# E' questa una buona occasione per usare has\_many :through?

**URL:** <https://www.ruby-forum.com/t/e-questa-una-buona-occasione-per-usare-has-many-through/214840>\
**Category:** IT\
**Created:** [December 13, 2011, 5:26pm UTC](https://www.ruby-forum.com/t/e-questa-una-buona-occasione-per-usare-has-many-through/214840 "2011-12-13T17:26:46Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [December 13, 2011, 5:26pm UTC](https://www.ruby-forum.com/t/e-questa-una-buona-occasione-per-usare-has-many-through/214840/1 "2011-12-13T17:26:46Z")

</div>

Company has\_many categories e Category has\_many companies.  
Ad una Company per ogni Category associata devo indicare una classifica.  
Gli attributi per Classification sono type e amount.  
Quindi ad esempio Company-1 ha Category-1 e Category-2 associate.  
Per Category-1 ha Classification type I e Classification amount 10.000  
mentre per Category-2 ha Classification type I Classification amount  
10.000 e Classification type II e Classification amount 50.000.  
La cosa migliore e’ usare Company has\_many :categories :through =\>  
:classifications dove in categorizations metto gli attributi type e  
amount di Classifications secondo voi?

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [December 13, 2011, 5:28pm UTC](https://www.ruby-forum.com/t/e-questa-una-buona-occasione-per-usare-has-many-through/214840/2 "2011-12-13T17:28:37Z")

</div>

On 13 December 2011 17:26, Mauro [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Company has\_many categories e Category has\_many companies.  
> Ad una Company per ogni Category associata devo indicare una classifica.  
> Gli attributi per Classification sono type e amount.  
> Quindi ad esempio Company-1 ha Category-1 e Category-2 associate.  
> Per Category-1 ha Classification type I e Classification amount 10.000  
> mentre per Category-2 ha Classification type I Classification amount  
> 10.000 e Classification type II e Classification amount 50.000.  
> La cosa migliore e’ usare Company has\_many :categories :through =\>  
> :classifications dove in categorizations metto gli attributi type e  
> amount di Classifications secondo voi?

secondo me si.

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [December 13, 2011, 6:33pm UTC](https://www.ruby-forum.com/t/e-questa-una-buona-occasione-per-usare-has-many-through/214840/3 "2011-12-13T18:33:40Z")

</div>

Anche secondo me si. Unica nota: chiamare un atrributo “type” in Rails  
non  
una buona cosa perch se non erro il nome della colonna che viene usata  
nelle STI (Single table inheritance)… non ricordo se sei libero di  
usare  
una colonna con tale nome…

Inviato da Nexus S  
Il giorno 13/dic/2011 17:26, “Mauro” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [December 13, 2011, 7:29pm UTC](https://www.ruby-forum.com/t/e-questa-una-buona-occasione-per-usare-has-many-through/214840/4 "2011-12-13T19:29:24Z")

</div>

2011/12/13 Matteo C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Anche secondo me si. Unica nota: chiamare un atrributo “type” in Rails non  
> una buona cosa perch se non erro il nome della colonna che viene usata  
> nelle STI (Single table inheritance)… non ricordo se sei libero di usare  
> una colonna con tale nome…

La chiamero’ classification\_type.

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [December 14, 2011, 11:58am UTC](https://www.ruby-forum.com/t/e-questa-una-buona-occasione-per-usare-has-many-through/214840/5 "2011-12-14T11:58:57Z")

</div>

2011/12/13 maurizio de magnis [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> > amount di Classifications secondo voi?
> 
> secondo me si.

Company e’ in relazione uno a molti con Category e viceversa e per  
ogni Category associata Company puo’ avere uno o piu’ Classification.  
Nel model di relazione Classification posso avere quindi dei record  
con questi dati:

company\_id:1  
category\_id:1  
classification\_type: I  
amount :10.000

company\_id:1  
category\_id:1  
classification\_type: II  
amount :20.000

company\_id e category\_id  
possono essere ripetuti piu’ volte a seconda di quante classifications  
sono associate a quella Company per quella Category associata.  
E’ normale questo?  
Forse l’uso di Company has\_many :categories, :through =\>  
:classifications va rivisto.

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [December 14, 2011, 2:28pm UTC](https://www.ruby-forum.com/t/e-questa-una-buona-occasione-per-usare-has-many-through/214840/6 "2011-12-14T14:28:18Z")

</div>

2011/12/14 Mauro [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> > > :classifications dove in categorizations metto gli attributi type e  
> > > category\_id:1  
> > > sono associate a quella Company per quella Category associata.  
> > > E’ normale questo?  
> > > Forse l’uso di Company has\_many :categories, :through =\>  
> > > :classifications va rivisto.

Inoltre, considerando che Classification sono un modello a parte  
suscettibile di aggiunte, modifiche, ecc.  
Non sarebbe meglio creare la tabella di join con campi:  
company\_id  
category\_id  
classification\_id

Forse devo ristudiarmi le associazioni in rails ☹
