Ancora sulle turnazioni

di il
33 risposte

Ancora sulle turnazioni

Ciao a tutti, vorrei riprendere con il forum un thread di qualche tempo fa relativo alle turnazioni.
Mi trovo in questa situazione.
In un db importo da file txt 5 campi (Cognome, Nome, NumeroBadge, Data, Turno, Note) che creano una tabella collegata.
Di fatto questa tabella definisce i turni lavorativi.
A questi turni dovrei abbinare nell'ambito degli stessi alcune mansioni da svolgere e cioè (per esempio) per il giorno XXX il dipendente XX dalle XXX alle XXX fa XXXX.
Non mi raccapezzo del come realizzare il tutto.
Ringrazio tutti.
Alle prossime

33 Risposte

  • Re: Ancora sulle turnazioni

    Ciao stai parlando di un db su Access, oppure ti tratta solo di progettazione dello schema? in tal caso sposto il thread in progettazione database
  • Re: Ancora sulle turnazioni

    Si Toki, si tratta di capire come meglio realizzare il db in access. In particolare non mi è chiaro come alla tabella importata aggiungere/unire o che dir si voglia le mansioni.
  • Re: Ancora sulle turnazioni

    Scusate vari miei messaggi privati. Lascio a Toki la decisione su quale sezione deve stare questo thread. Intanto provo a rispondere.

    mazda91 ha scritto:


    In un db importo da file txt 5 campi
    Questo si può fare, ma bisogna vedere se la tabella finale è normalizzata o no.

    mazda91 ha scritto:


    Cognome, Nome, NumeroBadge, Data, Turno, Note
    Cognome, Nome lasciano pensare a una tabella Anagrafica.
    Data, Turno direi proprio di no.
    NumeroBadge non è un tipico campo da Anagrafica, ma essendo in relazione uno-a-uno può tranquillamente farne parte.

    mazda91 ha scritto:


    tabella collegata
    Cosa intendi?

    mazda91 ha scritto:


    Di fatto questa tabella definisce i turni lavorativi.
    A questi turni dovrei abbinare nell'ambito degli stessi alcune mansioni da svolgere e cioè (per esempio) per il giorno XXX il dipendente XX dalle XXX alle XXX fa XXXX.
    In base alla mia seconda risposta, capisci bene che devi strutturare almeno Anagrafica uno-a-molti Turni.
  • Re: Ancora sulle turnazioni

    Ciao lascio il thread su questa sezione che è la più indicata
  • Re: Ancora sulle turnazioni

    Facciamo il punto:
    1* il file di partenza (txt) fornisce i dati che ho indicato,
    2* li importo in access con la procedura Importa>File di testo>Collega all'origine dati creando una tabella collegata.
    Di fatto questi sono i dati per cosi dire di partenza e che definiscono le turnazioni ora seguendo quanto dice Osvaldo prima di qualunque step successivo c'è da risolvere la questione dell'anagrafe. Anche qui chiedo il vostro aiuto ... perchè ora i problemi diventano due (se non più).
    Il primo è dettato dal come separare dai dati iniziali le anagrafice (Cognome e Nome) e poi come aggiungere un mansionario a questi turni.
    Spero di essere stato chiaro.
    Ringrazio
  • Re: Ancora sulle turnazioni

    Per me hai più problemi "ramificati" che occorrerebbe analizzare passo passo.

    1) L'importazione da file di testo, non è chiaro se la fai una volta sola oppure si tratta di un lavoro sistematico. In quest'ultimo caso capisci bene che stiamo parlando di 2 realtà completamente diverse. Il file txt non è in grado più di tanto di dare informazioni "incasellate" e occorre affidarsi anche al buon senso per cercare di capire/codificare tali dati

    mazda91 ha scritto:


    separare dai dati iniziali le anagrafice (Cognome e Nome)
    da dare in pasto correttamente per Access. Io la vedo alquanto dura da questo punto di vista.

    2) Io ho risposto solo in merito alla corretta organizzazione delle tabelle in Access. Cosa che (ovviamente) il file txt non può assolutamente prevedere.

    3) Se la tua richiesta è quella di automatizzare:
    - importazione da txt a tabella grezza (non normalizzata) di Access
    - normalizzazione successiva
    occorre un mega-codice VBA che faccia questo. Io non sono affatto in grado.
  • Re: Ancora sulle turnazioni

    mazda91 ha scritto:


    Ciao a tutti, vorrei riprendere con il forum un thread di qualche tempo fa relativo alle turnazioni.
    Mi trovo in questa situazione.
    In un db importo da file txt 5 campi (Cognome, Nome, NumeroBadge, Data, Turno, Note) che creano una tabella collegata.
    - Perché da un file TXT ?
    - Come è espresso il campo Turno? Cosa contiene?
    Descrivi in dettaglio.

    mazda91 ha scritto:


    Di fatto questa tabella definisce i turni lavorativi.
    Cioè?
    Come sopra, se non descrivi cos'è per TE un truno lavorativo, non possiamo indovinarlo.
    I turni possono essere di tantissimi tipi e orari. Dire semplicemente Turno non significa nulla, in sé.

    mazda91 ha scritto:


    A questi turni dovrei abbinare nell'ambito degli stessi alcune mansioni da svolgere e cioè (per esempio) per il giorno XXX il dipendente XX dalle XXX alle XXX fa XXXX.
    Avendo sola una Data, in base a cosa stabilisci dalle XXX alle XXX ?

    mazda91 ha scritto:


    Non mi raccapezzo del come realizzare il tutto.
    Figurati noi!
  • Re: Ancora sulle turnazioni

    Ciao a tutti e grazie delle vostre risposte.
    Rispondo a Osvaldo e Gibra
    - per quanto riguarda l'importazione questa avverrà più volte perchè le turnazioni spesso vengono cambiate da esigenze varie;
    - per la normalizzazione successiva all'importazione non ho idea di come realizzarla. In battuta ho pensato di estrarre (con query) le anagrafiche (Cognome, Nome, NumeroBadge) ma poi non sò come andare avanti;
    - i dati mi vengono passati da file txt perchè il software che fa i turni genera quello (o html), tutto qua;
    - il campo turno (tipo testo) assume 6 valori ai quali corrispondono 6 turni che identificano 6 situazioni diverse (mattino feriale, mattino prefestivo, mattino festivo, ecc.) e che sono contraddistinti essenzialmente da diversi orari di inizio e fine;
    - infine per quanto conserne le mansioni ed è qui principalmente che dovrei collegare le due cose conviene fare un esempio per spiegare, eccolo ....

    lunedi 18/1/16, ROSSI Paolo, Turno1, 8:00-12:00, centralino
    lunedi 18/1/16, ROSSI Paolo, Turno1, 12:00-14:00, reception
    lunedi 18/1/16, ROSSI Paolo, Turno1, 14:00-16:00, centralino
    lunedi 18/1/16, BIANCHI Mario, Turno1, 8:00-12:00, cucina
    lunedi 18/1/16, BIANCHI Mario, Turno1, 12:00-16:00, autista

    quello che vedete dovrebbe essere la condizione finale desiderata.
    I compiti/mansioni assegnati possono essere tanti e non sono legati a persone, orari, ecc. ma vengono inseriti di volta in volta secondo le esigenze e disponibilità delle persone.

    Ancora grazie del tempo e della disponibilità
  • Re: Ancora sulle turnazioni

    mazda91 ha scritto:


    - per quanto riguarda l'importazione questa avverrà più volte perchè le turnazioni spesso vengono cambiate da esigenze varie;
    1. Quindi devi appurare SE:
    a - i dati importati debbano essere sempre INSERITI
    oppure
    b - possano andare ad AGGIORNARE quelli esistenti
    perché è ovvia la differenza sostanziale: una modifica ai dati preesistenti si estende a tutte le altre tabelle (Vedi più avanti).

    mazda91 ha scritto:


    - per la normalizzazione successiva all'importazione non ho idea di come realizzarla.
    2. Questo dipende da QUALI informazioni necessita gestire e soprattutto COME.

    mazda91 ha scritto:


    In battuta ho pensato di estrarre (con query) le anagrafiche (Cognome, Nome, NumeroBadge) ma poi non sò come andare avanti;
    3. Per me no, nel file TXT hai già le informazioni che ti servono.
    Nella tabella importata devi comunque aggiungere un campo ID (PK).

    mazda91 ha scritto:


    - i dati mi vengono passati da file txt perchè il software che fa i turni genera quello (o html), tutto qua;
    Era esattamente quello che volevo sapere.
    Se viene generato da un software, allora siamo certi che conterrà dati congrui.
    Se invece fosse stato generato a mano....ahi ahi ahi...

    mazda91 ha scritto:


    - il campo turno (tipo testo) assume 6 valori ai quali corrispondono 6 turni che identificano 6 situazioni diverse (mattino feriale, mattino prefestivo, mattino festivo, ecc.) e che sono contraddistinti essenzialmente da diversi orari di inizio e fine;
    Bene.

    mazda91 ha scritto:


    - infine per quanto conserne le mansioni ed è qui principalmente che dovrei collegare le due cose conviene fare un esempio per spiegare, eccolo ....

    lunedi 18/1/16, ROSSI Paolo, Turno1, 8:00-12:00, centralino
    lunedi 18/1/16, ROSSI Paolo, Turno1, 12:00-14:00, reception
    lunedi 18/1/16, ROSSI Paolo, Turno1, 14:00-16:00, centralino
    lunedi 18/1/16, BIANCHI Mario, Turno1, 8:00-12:00, cucina
    lunedi 18/1/16, BIANCHI Mario, Turno1, 12:00-16:00, autista

    quello che vedete dovrebbe essere la condizione finale desiderata.
    I compiti/mansioni assegnati possono essere tanti e non sono legati a persone, orari, ecc. ma vengono inseriti di volta in volta secondo le esigenze e disponibilità delle persone.
    Quindi è evidente che ti serve una seconda tabella che deve essere relazionata alla tabella importata, ed un tabella MansioniTipi.
    Supponiamo di chiamare la tabella importata TURNI e la secondo MANSIONI
    In sostanza hai bisogno di tre tabelle:
    - la tabella TURNI sarà la tabella PADRE e conterrà le inofrmazioni sui turni
    - la tabella MANSIONI sarà la tabella FIGLIA che contiene le righe
    - la tabella TIPIMANSIONE, l'anagrafica delle mansioni

    La struttura delle tabelle, potrebbe essere questa:

    Campi tabella Turni
    - IDTurno (PK)
    - Cognome - TEXT 20
    - Nome - TEXT 20
    - NumeroBadge - TEXT 10
    - Data - DateTime
    - Turno - TEXT 50
    - Nota - TEXT 255

    Campi tabella Mansioni
    - IDMansione (PK) Long
    - IDTipoMansione - Long
    - IDTurno (FK Turni) - Long
    - OraInizio - DateTime
    - OraFine - DateTime
    - Nota - TEXT 255

    Campi tabella TipiMansione
    - IDTipoMansione (PK) - Long
    - Mansione - TEXT 50

    Come avrai notato, ho indicato Nota invece di Note perché essendo un nome riservato nel database è meglio evitarlo.
    Ho anche aggiunto il campo Nota nella tabella Mansioni, nel caso occorresse indicare qualche informazioni supplementare.

    Mi pare che dovrebbe essere sufficiente, almeno in base a quello che hai descritto.
  • Re: Ancora sulle turnazioni

    Grazie Gibra,
    procediamo con ordine:
    * i dati inseriti penso sia meglio inserirli anziché aggiornarli così da evitare incasinamenti con quanto già in tabella (vecchi inserimenti);
    * per le informazioni da gestire io pensavo ad uno schema del tipo: avute le info dal txt (quindi Cognome,Nome,NUmeroBadge, Data, Turno, Note) potrei in qualche modo aggiungervi le mansioni - singole o multiple che siano - per il giorno voluto.
    Ora penso sia il caso di fare alcune prove con i tuoi suggerimenti. MI costruisco le tabelle, le relaziono ... e poi vi faccio sapere cosa succede.
    ok ?
  • Re: Ancora sulle turnazioni

    Ecco una snapshot della situazione ...
    domanda:"Come collego le tre tabelle create con la tabella importata ? Campo turni ?
  • Re: Ancora sulle turnazioni

    mazda91 ha scritto:


    procediamo con ordine:
    * i dati inseriti penso sia meglio inserirli anziché aggiornarli così da evitare incasinamenti con quanto già in tabella (vecchi inserimenti);
    Questo non dipende da te, ma dal programma che genera i turni, e li esporta su TXT (quello che leggi tu).
    Hai già verificato?
    Supponi che in quel software (come avviene di norma in tutti i programmi) abbiano anche la possibilità di modificare, se ciò avviene su dati che hai già importato, TU come ti regoli?

    mazda91 ha scritto:


    * per le informazioni da gestire io pensavo ad uno schema del tipo: avute le info dal txt (quindi Cognome,Nome,NUmeroBadge, Data, Turno, Note) potrei in qualche modo aggiungervi le mansioni - singole o multiple che siano - per il giorno voluto.
    Pessima idea, inizieresti a de-normalizzare le tabelle e, credimi, non ci guadagni nulla.
    Tu devi mantenere la TUA tabella TURNI integra e pulita, così come la ricevi.

    Il modello su cui devi ragionare è come quello dei Documenti fiscali (Fatture, DDT, ecc...) in cui si usano sempre 2 tabelle: Testata e Righe.
    A nessuno verrebbe in mente di unificarne i dati in una sola tabella, perché sarebbe assolutamente sbagliato.
  • Re: Ancora sulle turnazioni

    mazda91 ha scritto:


    Ecco una snapshot della situazione ...
    ???

    mazda91 ha scritto:


    domanda:"Come collego le tre tabelle create con la tabella importata ? Campo turni ?
    Non capisco la domanda...
    La tabella da relazionare alla tabella TURNI è una sola: MANSIONI.
  • Re: Ancora sulle turnazioni

    Per lo snapshot non so cosa succede, ho fatto allega file ... e invece ??? Sbaglio qualcosa per allegare l'immagine ?
    Effettivamente modificando i dati all'origine questo si ripercuote sul file txt.
    Ora, veniamo all'ultima domanda, quella che non sono riuscito a spiegare.

    Gibra mi suggerisci:
    Quindi è evidente che ti serve una seconda tabella che deve essere relazionata alla tabella importata, ed un tabella MansioniTipi.
    Supponiamo di chiamare la tabella importata TURNI e la secondo MANSIONI
    In sostanza hai bisogno di tre tabelle:
    - la tabella TURNI sarà la tabella PADRE e conterrà le inofrmazioni sui turni
    - la tabella MANSIONI sarà la tabella FIGLIA che contiene le righe
    - la tabella TIPIMANSIONE, l'anagrafica delle mansioni


    Nella tabella creata (non quella collegata) cosi fatta vorrei fare in modo di trovare i turni presi dal file txt e ovviamente ad ora così non è. Come ottengo questo "collegamento". Relaziono ID_Turno (della tabella creata) con Turni della tabella importata ?
    Grazie
Devi accedere o registrarti per scrivere nel forum
33 risposte