# Relazionare tabelle con chiavi multiple

**URL:** <https://www.ruby-forum.com/t/relazionare-tabelle-con-chiavi-multiple/142709>\
**Category:** IT\
**Created:** [July 10, 2008, 5:24pm UTC](https://www.ruby-forum.com/t/relazionare-tabelle-con-chiavi-multiple/142709 "2008-07-10T17:24:11Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![triplem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/b19c9b/32.png) [@triplem](https://www.ruby-forum.com/u/triplem)\
**Post date:** [July 10, 2008, 5:24pm UTC](https://www.ruby-forum.com/t/relazionare-tabelle-con-chiavi-multiple/142709/1 "2008-07-10T17:24:11Z")

</div>

Con rails 2.1.0 stavo provando a relazionare tabelle su sql server che  
hanno chiavi multiple e relazionate tramite colonne che non sono chiavi  
primarie. Sulla documentazione del framework non ho trovato nulla e mi  
sono inventato una cosa del genere ma non funziona, qualcuno sa se si  
puÃ² fare e come?

belongs\_to :pippo, :foreign\_key =\> [:cip, :ciop], :conditions =\> {:tipo  
=\> 0…5}

in conditions ci sono le condizioni statiche e vengono applicate ma le  
foreign key vengono ignorate e la relazione viene fatta tramite la  
primary key (che tra l’altro accetta solo una colonna)

questi es. non funzionano:  
set\_primary\_key [:cip, :ciop]  
set\_primary\_key “cip, ciop”

---

<div class="post-metadata">

**Author:** ![triplem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/b19c9b/32.png) [@triplem](https://www.ruby-forum.com/u/triplem)\
**Post date:** [July 10, 2008, 6:36pm UTC](https://www.ruby-forum.com/t/relazionare-tabelle-con-chiavi-multiple/142709/2 "2008-07-10T18:36:07Z")

</div>

Avendo poche speranze di riuscire a relazionarle ho provato ad usare un  
altro sistema, Ã¨ un pÃ² bruttino per questo scopo ma funziona bene:

creo uno scope dinamico, credo che si possa fare solo dalla versione  
2.1.0

named\_scope :get, lambda { |\*args| {:conditions =\> [“cip = ? AND ciop =  
?”, args[0], args[1] ]} }

named\_scope :disney, :conditions =\> {:tipo =\> 0…5}

La uso cosÃ¬:  
Personaggio.get(1,5)

e anche

Personaggio.get(1,5).disney

---

<div class="post-metadata">

**Author:** ![triplem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/b19c9b/32.png) [@triplem](https://www.ruby-forum.com/u/triplem)\
**Post date:** [July 10, 2008, 6:41pm UTC](https://www.ruby-forum.com/t/relazionare-tabelle-con-chiavi-multiple/142709/3 "2008-07-10T18:41:17Z")

</div>

On Jul 10, 2008, at 5:24 PM, Marco M. wrote:

> Con rails 2.1.0 stavo provando a relazionare tabelle su sql server che  
> hanno chiavi multiple e relazionate tramite colonne che non sono  
> chiavi  
> primarie. Sulla documentazione del framework non ho trovato nulla e mi  
> sono inventato una cosa del genere ma non funziona, qualcuno sa se si  
> può fare e come?

[http://compositekeys.rubyforge.org/](http://compositekeys.rubyforge.org/)

S.

---

<div class="post-metadata">

**Author:** ![triplem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/b19c9b/32.png) [@triplem](https://www.ruby-forum.com/u/triplem)\
**Post date:** [July 10, 2008, 6:52pm UTC](https://www.ruby-forum.com/t/relazionare-tabelle-con-chiavi-multiple/142709/4 "2008-07-10T18:52:56Z")

</div>

> [http://compositekeys.rubyforge.org/](http://compositekeys.rubyforge.org/)
> 
> S.

Proprio quello che fa al caso mio, grazie!  
Non Ã¨ ancora testato su sql server, farÃ² il pioniere
