Autore Topic: Molti a molti con chiave primaria composta  (Letto 2302 volte)

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Molti a molti con chiave primaria composta
« il: 28 Dicembre 2013, 19:19:23 »
Ciao,
stavo cercando di realizzare una relazione molti a molti tra due tabelle di cui una ha una chiave primaria composta. Mi chiedo se la tabella di congiunzione deve avere, tra i suoi attributi, tutti i campi che compongono la chiave primaria della tabella con PK composta.

Perchè, con mySQL, non riesco poi a definire tutte le chiavi esterne della tabella di congiunzione rispetto alle tabelle coinvolte nella relazione. Uhm...cosa sbaglio?
Claudio CP La Rosa

Offline cdimauro

  • Human Debugger
  • *****
  • Post: 4291
  • Karma: +7/-95
    • Mostra profilo
Re:Molti a molti con chiave primaria composta
« Risposta #1 il: 28 Dicembre 2013, 21:12:35 »
Ciao,
stavo cercando di realizzare una relazione molti a molti tra due tabelle di cui una ha una chiave primaria composta. Mi chiedo se la tabella di congiunzione deve avere, tra i suoi attributi, tutti i campi che compongono la chiave primaria della tabella con PK composta.
Sì. Ma se i campi sono molto, ti conviene definire un ID autoincrementante come chiave primaria (che referenzierai nelle altre tabelle) e una chiave unica per i campi che fungono anch'essi da chiave (unica; quella primaria è un caso particolare).
Citazione
Perchè, con mySQL, non riesco poi a definire tutte le chiavi esterne della tabella di congiunzione rispetto alle tabelle coinvolte nella relazione. Uhm...cosa sbaglio?
Posta la relazione, se puoi, così cerco di capire meglio.

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re:Molti a molti con chiave primaria composta
« Risposta #2 il: 28 Dicembre 2013, 22:20:13 »
Ciao,
stavo cercando di realizzare una relazione molti a molti tra due tabelle di cui una ha una chiave primaria composta. Mi chiedo se la tabella di congiunzione deve avere, tra i suoi attributi, tutti i campi che compongono la chiave primaria della tabella con PK composta.
Sì. Ma se i campi sono molto, ti conviene definire un ID autoincrementante come chiave primaria (che referenzierai nelle altre tabelle) e una chiave unica per i campi che fungono anch'essi da chiave (unica; quella primaria è un caso particolare).
Ho provato a fare così e sembra tt ok!
Bella idea, probabilmente largamente usata ma che non conoscevo anche a causa della mia inesperienza in ambiti reali. (l'avrò forse studiata all'Uni? bho?!)
Grazie Cesare!
Claudio CP La Rosa

Offline cdimauro

  • Human Debugger
  • *****
  • Post: 4291
  • Karma: +7/-95
    • Mostra profilo
Re:Molti a molti con chiave primaria composta
« Risposta #3 il: 29 Dicembre 2013, 09:01:28 »
Di nulla. E' stato il mio pane quotidiano per una quindicina d'anni. ;)

Tra l'altro in questo modo è pure più veloce, perché non devi specificare ogni volta tutti i campi con tutti i valori nelle tabelle esterne: l'id è un intero, che occupa poco spazio e si indicizza anche velocemente.

In letteratura si parla anche di normalizzazione di un database.

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re:Molti a molti con chiave primaria composta
« Risposta #4 il: 29 Dicembre 2013, 09:24:47 »
In letteratura si parla anche di normalizzazione di un database.

Le varie forme di normalizzazione...vedrò di prendere il vecchio Azteni (basi di dati) per rispolverare la memoria!
Claudio CP La Rosa

Tags: