Relazione molti a molti per grossa mole di dati

di il
10 risposte

Relazione molti a molti per grossa mole di dati

Buongiorno a tutti,
sono nuova del sito e non ho ancora imparato a navigare tra i molteplici argomenti che vengono trattati con grande professionalità e competenza.
Forse il problema che mi assilla è già stato trattato precedentemente, purtroppo non sono riuscita a trovarlo. In tal caso Vi ringrazio se me lo segnalate.
Da poco, e solo a scopo ludico, mi sono messa a tentare di creare piccolissime applicazioni con Access 2007.
Dopo estenuanti consultazioni sui siti online e grazie anche a libri del settore, sono riuscita appena ad abbozzare qualcosa di leggermente carino che però mi sprona ad andare avanti.
Mi sono arenata davanti a questo problema.
Immaginate di avere un calendario con tutti i giorni dell'anno, in ogni giorno circolano svariate corse (anche oltre 100) e pertanto in ogni giorno ci saranno come minimo 100 corse legate (1 a molti) e ogni corsa potrebbe essere effettuata per ogni giorno dell'anno (uno a molti).
Non riesco a strutturare le tabelle in modo da risolvere il problema.
Grazie per l'aiuto
Ava

10 Risposte

  • Re: Relazione molti a molti per grossa mole di dati

    Di cosa parla il tuo database? Le corse sono quelle degli autobus? dei cavalli? altro?
    Potresti elencare i nomi delle tabelle e campi che avresti abbozzato finora?
  • Re: Relazione molti a molti per grossa mole di dati

    Puoi fare un'anagrafica Corse ed una di StoricoCorse dove inserisci l'ID Corse e la data in cui avviene.
    Se invece per calendario intendi qualcosa di più complesso con info di festività e rotazione dei santi allora dovresti prevedere anche un'anagrafica calendario...
  • Re: Relazione molti a molti per grossa mole di dati

    Grazie per la sollecita risposta.
    Il database è relativo a treni. Ho predisposto tre tabelle principali.
    La prima è relativa ai treni (master) che sono presenti fin dall'inizio dell'orario, con IDTreno (chiave primaria) relativo al numero treno che è univoco, la seconda é quella relativa ai treni che si sostituiscono ai master per vari motivi (con numero diverso) sia per alternanza nei festivi, sia per cambio numero in seguito a variazioni per interruzioni sulla linea.
    Questa seconda tabella ha un campo numero appropriato che si relaziona molti a uno con il campo IDTreno con la prima tabella.
    La terza tabella non è altro che il campo calendario con chiave primaria IDdata.
    Ho provato a creare una tabella di collegamento anche se ho letto che dalla versione Office 2007 non è più necessario, ma non risolvo il problema.
    Da tener presente che alcuni treni non circolano proprio in alcuni giorni e che può rendersi necessario inserire nuovi treni in qualsiasi momento sia in sostituzione di treni master sia in date vuote.
    Grazie ancora per la tua disponibilità.
    A tua disposizione per qualsiasi ulteriore chiarimento.
    Ciao
    Ava
  • Re: Relazione molti a molti per grossa mole di dati

    Avrai un'anagrafica Treni dove in un campo indichi anche il Tipo, Master o secondario che sia, poi nello storico corse inserirai quale treno parte in un determinato giorno/ora. Perchè fare una seconda tabella per i treni secondari?
    Non so se vuoi creare dei gruppi che appartengono esclusivamente a delle tratte bene precise...
  • Re: Relazione molti a molti per grossa mole di dati

    Qual è lo scopo del database? Scrivere il tabulato delle corse (tipo Partenze/Arrivi come nelle stazioni)? Oppure tracciare le Corse volta per volta?
    Dalla descrizione che hai dato, dove tutto può succedere anche all'ultimo momento, direi che prevalga l'ultima mia ipotesi. Se sì, tu puoi solo tracciare le Corse quando sono già avvenute, ma non prevederle.
    Giusto?
  • Re: Relazione molti a molti per grossa mole di dati

    Dovrebbe solo permettere di archiviare i dati permettendo di tener sotto controllo la reale situazione passata, presente e futura consentendo di estrarre dati significativi che già so come estrarre. Per comprendere meglio quello che vorrei fare è:
    1) selezionando un treno master vorrei poter visualizzare le date e il numero del treno effettivamente circolante (master o associato);
    2) selezionando una data vorrei poter visualizzare quali treni circolano in tale giorno (master o associato).
    Grazie per la pazienza.
    Ava
  • Re: Relazione molti a molti per grossa mole di dati

    AvaFimal ha scritto:


    Dovrebbe solo permettere di archiviare i dati permettendo di tener sotto controllo la reale situazione passata, presente e futura consentendo di estrarre dati significativi che già so come estrarre.
    Mia interpretazione di questa frase:
    1. Tu tracci le Corse "già effettuate"...non puoi fare altrimenti
    2. Dopo un'annata di inserimenti puoi avere già un'idea "approssimativa" delle Corse future.

    Io più che chiamare Corse, le chiamerei Tappe perché occorre tracciare anche le Stazioni. Secondo me lo scenario tabelle potrebbe essere questo:

    Treni
    IDTreno (PK)
    NomeTreno
    TipoTreno (qui scrivi se si tratta di Master, Secondario...)

    Stazioni
    IDStazione (PK)
    NomeStazione

    Tappe
    IDTappa (PK)
    TimeTappa (con il formato completo Data/Ora)
    IDStazione (FK)
    IDTreno (FK)

    Relazioni:
    Treni.IDTreno uno-a-molti Tappe.IDTreno
    Stazioni.IDStazione uno-a-molti Tappe.IDStazione

    Per avere sott'occhio le varie situazioni che hai elencato

    AvaFimal ha scritto:


    Per comprendere meglio quello che vorrei fare è:
    1) selezionando un treno master vorrei poter visualizzare le date e il numero del treno effettivamente circolante (master o associato);
    2) selezionando una data vorrei poter visualizzare quali treni circolano in tale giorno (master o associato).
    costruisci tutte le query che vuoi.
  • Re: Relazione molti a molti per grossa mole di dati

    Grazie
  • Re: Relazione molti a molti per grossa mole di dati

    Scusate ancora, non riesco purtroppo a evidenziare il problema principale. Per questo cambierò l'esempio sperando che questo sia più chiaro:

    provo ad ipotizzare un esempio calzante e meno fuorviante.

    Vorrei gestire le "presenze" di un gruppo di persone durante tutto l'arco dell'anno, nessun giorno escluso e con eventualmente la possibilità di aggiungere ulteriori nomi anche durante l'anno ovviamente per le date a seguire.

    Esempio:
    Facciamo l'ipotesi di gruppo di 100 dipendenti senza turni fissi, pertanto alcuni lavorano tutti i giorni, alcuni in giorni saltuari ecc.

    Vorrei:
    - Poter inserire le presenze dei dipendenti nelle rispettive date lavorative;
    - Richiamando una qualsiasi vorrei data poter visualizzare quali sono i dipendenti che risultano inseriti come presenti in tale data;
    - Richiamando il nome di un qualsiasi dipendente vorrei poter vedere tutte le date dell'anno nelle le quali risulta inserito come presente.

    Ho problemi a strutturare le tabelle di base nonché le relazioni "uno a molti" che legano le tabelle e anche a strutturare le maschere opportune per la visualizzazione/modifica/inserimento dei nuovi dati.

    Grazie di nuovo per l'attenzione e per la Vostra disponibilità

    Ava
  • Re: Relazione molti a molti per grossa mole di dati

    Il problema è molto diverso. Apri una nuova discussione.
Devi accedere o registrarti per scrivere nel forum
10 risposte