|
|
|
![]() |
|
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: Mar 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: Mar 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: Mar 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]
__________________
![]() |
![]() |
![]() |
![]() |
#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: 17:54.