# Domanda banale su migrations e primary keys

**URL:** <https://www.ruby-forum.com/t/domanda-banale-su-migrations-e-primary-keys/156202>\
**Category:** IT\
**Created:** [December 22, 2008, 7:12pm UTC](https://www.ruby-forum.com/t/domanda-banale-su-migrations-e-primary-keys/156202 "2008-12-22T19:12:35Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![mauro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/45deac/32.png) [@mauro](https://www.ruby-forum.com/u/mauro)\
**Post date:** [December 22, 2008, 7:12pm UTC](https://www.ruby-forum.com/t/domanda-banale-su-migrations-e-primary-keys/156202/1 "2008-12-22T19:12:35Z")

</div>

Le migrations in automatico per ogni tabella creano una primary key di  
solito chiamata con lo stesso nome della tabella col suffisso \_id, il  
tipo  
data di tale campo e’ integer.  
E se volessi usare un altro campo o due campi assieme come primary key?

---

<div class="post-metadata">

**Author:** ![mauro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/45deac/32.png) [@mauro](https://www.ruby-forum.com/u/mauro)\
**Post date:** [December 22, 2008, 7:23pm UTC](https://www.ruby-forum.com/t/domanda-banale-su-migrations-e-primary-keys/156202/2 "2008-12-22T19:23:08Z")

</div>

mmh… le primary key di solito si chiamano soltanto ‘id’ , se vuoi però  
puoi operare per modificare questa cosa:

Nella migrazione:

create\_table :blablabla, :primary\_key=\>:nomecolonna do  
blabla  
end

Nel model:

class BlaBla \< ActiveRecord::Base  
set\_primary\_key :nomecolonna  
end

dovrebbe bastare,

per quanto invece riguarda primary keys doppie non credo che  
activerecord le  
tenga… ☹

Sandro

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

---

<div class="post-metadata">

**Author:** ![mauro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/45deac/32.png) [@mauro](https://www.ruby-forum.com/u/mauro)\
**Post date:** [December 22, 2008, 10:39pm UTC](https://www.ruby-forum.com/t/domanda-banale-su-migrations-e-primary-keys/156202/3 "2008-12-22T22:39:08Z")

</div>

2008/12/22 Sandro P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> class BlaBla \< ActiveRecord::Base  
> set\_primary\_key :nomecolonna  
> end
> 
> dovrebbe bastare,
> 
> per quanto invece riguarda primary keys doppie non credo che activerecord  
> le  
> tenga… ☹

mmm io devo gestire 3 tabelle: un’anagrafica fornitori, una categorie  
merceologiche e una settori.  
I fornitori possono far parte di una o piu’ categorie merceologiche e  
ogni  
categoria appartiene ad un settore.  
Allora: la tabella settori ha come primary key sector\_id, la tabella  
categorie ha una foreign key sector\_id per matenere l’integrita’ dei  
dati.  
Poi…per me la tabella categorie dovrebbe avere come primary key i  
campi  
settore e codice categoria, in quanto devono essere univoci, cioe’ ci  
possono essere categorie con stesso codice ma appartenenti a settori  
diversi.
