|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
|
DATABASE : Associazione molti a molti
Il mio problema è il seguente : nel modello concettuale del problema da risolvere ho due entità . Una si chiama "Docenti" e l'altra "Materie" . Siccome sto analizzando la situazione di una scuola , un docente può insegnare più materie e una materia può essere insegnata da più di un docente . L'associazione , come è chiaro è "molti a molti" . Per poter andare avanti , l'associazione in questione viene divisa in due associazioni "uno a molti" introducendo una nuova relazione (tabella) . In questa tabella si andranno a riportare le chiavi primarie delle due tabelle di partenza . L'entità docenti presenta come attributi : id,nome,cognome,indirizzo . L'entità materia : id,nome,descrizione . Ora siccome il mio problema è stato risolto con l'introduzione di un'altra relazione devo pure far in modo che questa relazione contenga qualche dato . I dati devo per forza immetterglieli io , oppure posso creare una query che fa tutto da solo ? Credo che devo farlo io , in fondo lui cosa ne sa che il docente xxxx insegna xxxxxx ? Voi cosa ne pensate ? Vi prego rispondete e indicatemi la strada più giusta . Grazie di tutto ?
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2001
Città: Nordest
Messaggi: 217
|
Ricapitolando hai tre tabelle:
Docenti (id,nome,cognome,indirizzo) Materie (id,nome,descrizione) Competenze (id_docente,id_materia) Hai due relazioni 1 a molti: tra Materie.id e Competenze.id_materia tra Docenti.id e Competenze.id_docente I dati dovranno essere inseriti a mano: occorre riempire prima le tabelle Docenti e Materie, in seguito sarà possibile fare l'associazione tra docenti e materie nella tabella Competenze.
__________________
Chi non cerca trova. |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
|
Quote:
Competenze (id,id_docente,id_materia) Si , ma infatti le informazioni sui docenti e sulle materie l'ho riempita a mano , mi sembra logico . Quello che non volevo riempire io era la tebella competenze . Ma poi mi sono detto : lo può fare lui in automatico ? Mi sono dato anche una risposta : come fa a riepire in automatico non sapendo quel professore cosa insegna ? Sono tutte ipotesi che mi sono formulato . Volevo sapere se vanno bene o se si può veramente farla riempire a lui questa tabella |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Feb 2001
Città: Nordest
Messaggi: 217
|
Quote:
No, non puoi farla riempire a lui, a meno che queste informazioni non siano desumibili da altre tabelle.
__________________
Chi non cerca trova. |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
|
Quote:
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Messaggi: 39
|
si che lo fa in aut. altrimenti a cosa servirebbe la rel. molti a molti?
la tabella competenze ti si deve "autocompilare" basta usare una semplice form.
__________________
t.A.T.u. ------> all the things she said |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Messaggi: 39
|
l'errore è che la tabella competenze non deve avere un campo contatore o indice. E' una tabella di congiunzione che è formata da 2 chiavi esterne ID_materia;ID_docente.
la chiave primaria della tab. competenze sono entrambi i suoi campi (di tipo numerico ovviomente).
__________________
t.A.T.u. ------> all the things she said |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ti si deve compilare da sola nel senso che puoi scegliere i valori solo fra quelli delle chiavi delle altre due tabelle...ma non che la tabella ti si compila da sola
Confermo...non ha senso mettere un campo ID nella tabella competenze perchè per definizione non ci possono essere 2 competenze con gli stessi valori nei campi id_materia e id_docente... Anzi mettendo un ID si correrebbe il rischio di poter specificare due volte la stessa competenza... La tabella è tuttachiave... Inoltre non ci dovrebbe essere nemmeno la possibilità di aver due materie con lo stesso nome e la stessa descrizione... Così se si vuole fare le cose secondo la teoria (per minimizzare la ridondanza) anche l'ID della tabella Materie andrebbe tolto e la tabella sarebbe anch'essa tuttachiave... Riguardo agli insegnanti se si ammette che possano esistere almeno due insegnanti con stesso nome, cognome e indirizzo all'ora l'ID ci vuole... Non è una cosa probabile, ma sicuramente non impossibile... |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Messaggi: 39
|
nel momento che in una maschera metti il Docente e la materia che insegna, questi dati dove vengono memorizzati? Nella tabella congiunzione o sbaglio. I docenti e le materie li prendi dalle rispettive tab, magari con una combobox, e si associano nella competenze.
__________________
t.A.T.u. ------> all the things she said |
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
|
Quote:
|
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: May 2001
Città: Naples
Messaggi: 1063
|
[ot] Ma a cosa serve una chiave primaria in un db? [/ot]
__________________
barton 2500+@3200 | 2x512mb PC3500 GEIL | abit AN7 | lcd 19" dell | sapphire 9600xt |460w enermax | ybris stealth
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
|
Quote:
|
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
La chiave primaria può essere anche più di un attributo...
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:27.











barton 2500+@3200 | 2x512mb PC3500 GEIL | abit AN7 | lcd 19" dell | sapphire 9600xt |460w enermax | ybris stealth








