Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: relazioni

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    483

    relazioni

    ciao amici, questa volta non ho bisogno di aiuto ma di una delucidazine, perchè sto uscendo veramente pazzo.
    Il mio problema sono le relazioni.
    Vi faccio un esempio semplice.
    Ho un database denominato scuola. In questo database ci sono 2 tabelle denominate "aula" ed "alunni".
    La tabella aula è composta da diversi campi, uno di questi campi è denominato aulunno. Questo record alunno è in relazione con la tabella aulunni. Quì viene il bello. Come faccio a mettere in relazione il record aulunno con i vari id della tabella alunni? Ovviamente ogni id della tabella alunni è un alunno, ed ovviamente il record alunno della tabella aula è composto da diversi id.
    Spero che soono stato chiaro nell'esporvi il mi problema.
    Potete darmi una dritta per rislvere questo problema? Grazie mille a tutti.

  2. #2
    nn ho capito

    Silent Engine

    <?="hello world"?>

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    483
    in parolo povere, il campo alunno deve essere relazionato con i vari id della tabella alunni.
    Potete aiutarmi?
    Grazie.

  4. #4
    credo ci sia un errore concettuale.
    io metterei un campo aula nel recordset degli alunni. in questo campo aula metti l'id dell'aula.

    aule è padre di alunno non il contrario!

    mettere tutti gli id degli alunni in un campo dell'aula prevederebbe un implosione degli id in un unica stringa, ma che cmq sarebbe macchinosa da gestire.



    spero di aver capito la domanda

    Silent Engine

    <?="hello world"?>

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Io invece pensavo a un'altra soluzione.
    Usare tre tabelle.
    Una per gli alunni, una per le aule e una terza tabella in cui crei la corrispondenza tra l'id dell'aula e l'id dell'alunno.

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    483
    grazie pak e nicola.
    Siete stati gentili.
    Potresti dirmi che tipo di query dovrei effettuare per poter visualizzare l'aula con tutti gli aulunni?
    Una per la soluzione di pak e l'altra di nicola?
    Grazie mille.

  7. #7
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    io trovo il tutto molto strano.. in pratica devi tenere traccia di dove si trovi un alunno? in quale aula? un pò come in questo forum che si tiene traccia della pagina che stai visualizzando? (l'ultima?)

    La soluzione di Nicola.. tipica tabella di cross.. andrebbe bene se vuoi tenere traccia di tutte le aule visitate da un alunno in un dì ad esempio.. ma se semplicemente vuoi sapere adesso dov'è metti l'id dell'aula nella tabella dell'utente.. questo funziona tranne se hai un alunno che si chiama Gesù (lui pò essere in due o + aule contemporaneamente).. così facendo una query sul perno dell'id dell'aula ti riporta gli alunni attualmente in un aula, se stampi il tizio singolo sai dov'è..

    quando progettai un db per una scuola tra i vincoli c'erano che ogni tizio può appartenere ad una classe sola.. ed ogni classe può occupare una sola aula per volta.. due classi potevano condividere una stessa aula alla stessa ora.. magri indica i vincoli che così abbiamo na visione più chiara (almeno personalmente)
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  8. #8
    Originariamente inviato da nicola75ss
    Io invece pensavo a un'altra soluzione.
    Usare tre tabelle.
    Una per gli alunni, una per le aule e una terza tabella in cui crei la corrispondenza tra l'id dell'aula e l'id dell'alunno.
    perchè 3? una terza tabella ti serve solo in caso che un'alunno possa stare in + di un'aula contemporaneamente (relazione molti-molti).
    Nel caso di 79Kuntz79 bastano 2 tabelle.
    semplificando il db
    codice:
    aule
    id_aula descrizione_aula
    1       1a B
    2       2a B
    
    alunni
    id_alunno nome    aula_alunno
    1         Rossi   1
    2         Verdi   1
    3         Bruno   1
    4         Popper  2
    Aule contiene i dati relativi all'aula , alunni ha una chiave esterna (aula_alunno) che relaziona l'entità alunno ad un'aula.
    (popper e' in classe da solo )


    esempio query "alunni presenti in 1a B"
    codice:
    select * from aule inner join alunni on (id_aula= aula_alunno) where id_aula=1


  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    483
    no, io ho semplicemente fatto un esempio, perchè il mio problema si avvicina molto all'esempio.
    io ho un tabella con diversi campi, uno di questi campi è in relazione con gli id di un'altra tabella.
    Cmq anche per me la soluzione di nicola va bene.

  10. #10
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    in vero popper... la tua query restituisce tre alunni... (ROSSI, VERDI, BRUNO)
    ma buono che l'hai postata che mi sa che è quello che andava trovando... na join..

    Nicola ha fatto un esempio.. una tabella di cross che svincolasse dalla rigidità della relazione stretta,rigida.. è solo una delle possibili implementazioni lasche in casi come quelli che ho indicato io nel post di prima.. forse un tantinello eccessiva come soluzione visto che richiederebbe eventualmente due join e quindi computazionalmente più gravosa.. ma se kuntz dice che gli piace.. forse appunto era un esempio e la soluzione soddisfa le sue specifiche...

    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.