Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Aiuto per relazione

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    5

    Aiuto per relazione

    Salve a tutti sono uno studente delle superiori di informatica e avevo una domanda... possono due foreign key in una tabella referenziare una primary key dell altra tabella, legate tra loro con associazione 1 ad n??? ..... perche io mi trovo in questa siutazione:

    ho due tabelle Tratta ed Aeroporto che hanno rispettivamnete:

    -Tratta
    Codice tratta pk int
    Tipologia char

    -Aeroporto
    IATA_Aeroporto pk varchar(5)
    Nome varchar(30)
    Nazione varchar(5)
    Tipologia char


    Ora queste due tabelle sono legate tra loro con associazione n ad m e quindi si crea una nuova tabella Tratta/Aeroporto

    -Tratta/Aeroporto
    Id_Tratta/Aeroporto pk
    id_Tratta fk riferita alla tabella tratta
    IATA_partenza fk ( 1 delle 2 fk che devo far refernziare ad IATA_Aeroporto)
    IATA_Arrivo fk ( 2 delle 2 fk che devo far refernziare ad IATA_Aeroporto)

    Tutto cio si puo fare????? esiste un modo migliore ??? io ho pensato che c'e un modo migliore cioè fare due tabella aeroprotoArrivo - aeroportoPartenza che però sono fatte allo stesso modo, e molto probabilmente conterranno spesso gli stessi valori, cio implica forte ridondanza... grazie in anticipo

  2. #2
    Ciao,

    non capisco il senso di questi 2 campi :
    IATA_partenza fk ( 1 delle 2 fk che devo far refernziare ad IATA_Aeroporto)
    IATA_Arrivo fk ( 2 delle 2 fk che devo far refernziare ad IATA_Aeroporto)

    nella relazione tratta/aereoporto devi avere come campi :
    codiceTratta e IATA_aereoporto i quali sono chiavi primarie e chiavi esterne.

    codiceTratta referenzia tratta
    IATA_aereoporto referenzia aereoporto
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    5
    perfetto è vero e come dici tu, però considerando che una tratta è composta da minimo due aeroporti (facciamo due per semplicità) allora dovrei aggiungere come attributi alla tabella i due attributi in questione senza far si che siano fk, pero cosi facendo il dato in almeno uno degli attributi ridonderà sempre perche avremo sicuramente la fk di aereoporto che sara uguale ad o IATA_Arrivo o Partenza.... ed è per questo che dico se è possibile far si che i due attributi in questione ( IATA_Arrivo e IATA_PArtenza) possano essere foreign key che referenziano all IATA_Aeroporto della tabella Aeroporto

  4. #4
    più che di una tabella tratta/aeroporto credo che tu abbia bisogno di una tabella tratta/dettagli

    codice tratta
    progressivo
    codice aeroporto

    con progressivo=1 metti l'aeroporto di partenza, 2 il primo scalo, ecc., e l'ultimo progressivo (che può essere anche 2!) sarà l'arrivo

  5. #5
    Ciao,

    non hai bisogno di quegli attributi proprio perche hai la relazione.

    ti faccio un esempio, supponendo che vi sono alcuni elementi nella tabella... e ometto alcuni campi che per capirci ora non servono...

    Entita Tratta:
    codice:
    CodiceTratta    Tipologia
    1                         aaa
    2                         bbb
    3                         ccc
    4                         ddd
    Entita Aereoporto:
    codice:
    IATA_Aereoporto    nome
    1                           ee
    2                           ff
    3                           gg
    E poi hai la relazione che si chiama aereoporto/tratta.

    Se tu vuoi fare che una tratta e' composta da N aereoporti (supponiamo la tratta 1 ha aereoporto 1 e 2)

    Come detto prima la relazione tratta/aereoporto ha attributi CodiceTratta e IATA_Aereoporto. Tu puoi benissimo avere :
    codice:
    CodiceTratta         IATA_Aereoporto
    1                                1
    1                                2
    Il che ti fa soddisfare la tua richiesta che una tratta puo essere composta da piu' aereoporti
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    5
    ed in questo modo pero come farei a sapere qual' l'aereoporto di partenza e quale quello di arrivo?

  7. #7
    possono esserci vari modi... uno valido e' quello che ti ha suggerito optime....

    combinando le due soluzioni avrai la tua soluzione
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  8. #8
    la tabella tratte dettagli potrebbe avere una colonna Tipo in più: che varrà P per l'aeroporto di partenza, A per l'aeroporto di arrivo, e numeri in progressione per le tappe intermedie

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 © 2026 vBulletin Solutions, Inc. All rights reserved.