|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
|
[basi di Dati] dubbi sulla teoria
ciao ragazzi sto studiando basi di dati e mi porgo alcuni dubbi.
Nelle tabelle bisogna segnare la chiave primaria per far si che attraverso di essa ogni riga sia una e unica (la matricola, il seriale, l'id e via dicendo) ma non capisco l'uso della chiave esterna, nel senso che quando faccio un join se questa è segnalata o meno cosa cambia?
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2004
Messaggi: 752
|
Le chiavi esterne permettono di effettuare un "collegamento" fra le tabelle.
Parlando più precisamente: sono usate per stabilire dei vincoli di integrità referenziale. (foreign key) Mi viene in mente il classico esempio: Fornitore-Fornisce-Merce. Fornitore(codice, nome, città, via,...) Fornisce(fornitore,merce,,qtà) Merce(codice,prezzo, colore, ....) Rosso: chiave primaria. Blu: chiave esterna. Per capire al meglio questo concetto "di scorrimento" ti consiglio di disegnare il diagramma E/R per questo semplice database ed effettuare una query "visiva" del tipo: trovare i nomi dei fornitori che forniscono merci di colore rosso con prezzo uguale a 10 euro. Ultima modifica di atidem : 10-03-2005 alle 08:50. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
|
si ma la mia domanda è: se non ci fossero quelle 2 chiavi esterne dichiarate, cosa cambierebbe? (ma durante la dichiarazione devo esplicitare a quale chiave di altra tabella si riferisce la chiave esterna che sto dichiarando?)
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85 |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2004
Messaggi: 752
|
1. Ti ho risposto, ma probabilmente non hai prestato attenzione a quanto ho scritto. Il concetto "vincolo di integrità referenziale" è il nocciolo della questione.
2. Si, altrimenti che razza di chiave esterna sarebbe?! ![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
|
mhmm ok forse ho capito..
altra cosa: devo fare una base di dati che gestisca i giocatori di calcio per il fantacalcio; ognuno ha una rosa di 25giocatori e deve schierare una formazione settimanale di 11+3. la formazione secondo voi la implemento come una vista o metto un campo alla tabella rosa che dice :titolare|panchinaro|riserva e la modifico settimana per settimana?
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85 |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Dec 2001
Messaggi: 2514
|
facendo una tabella x il fantacalcio suppongo che nella tabella della rosa oltre al nome si potranno inserire altri dati quali per esempio media voto, media voto fantacalcio, e tante altre cose.
i suggerimenti possono essere diversi : - puoi inserire una colonna nella tabella "rosa" in cui inserire il valore che contraddistinguerà i titolari o i panchinari così potrai avere la formazione semplicemente facendo una select oppure usando una vista - puoi fare una tabella a parte in cui, usando proprio la chiave esterna, inserirai soltanto gli ID dei titolari ogni settimana. per ora non mi viene in mente altro. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
|
dunque io devo farmi anche uno storico dei voti e delle formazioni migliori, l'unico modo e creare una tabella con una colonna per giornata che faccia come da "registro di scuola" ? non ci sono soluzioni migliori?
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85 |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Dec 2001
Messaggi: 2514
|
Quote:
altro non mi viene in mente per il momento |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:03.