Overlap intervalli temporali

di il
7 risposte

Overlap intervalli temporali

Salve, non sono un grande esperto ma neanche di primo pelo...cioé uso access già da un pochino

ho bisogno di fare un database per le ferie, ve lo descrivo

Tabelle:
1) dipendenti
2) Reparti aziendali
3) ferie

da questo database mi aspetto di

1) inserire le ferie dei dipendenti, e visualizzarle
2) evitare di mandare in ferie troppi dipendenti dello stesso reparto aziendale: se troppe ferie collimano anche per un solo giorno/ora, il sistema dovrebbe impedirmi di andare avanti....

apprezzo tutte le idee che mi vorrete dare (sicuramente migliori delle mie )

7 Risposte

  • Re: Overlap intervalli temporali

    In base al regolamento del forum non possiamo fare tutto noi, ossia fornire "pappa pronta".
    Tu cosa hai abbozzato? Dove non ti trovi? Cosa conosci delle basi di Access?
  • Re: Overlap intervalli temporali

    Più che questione di regolamento, direi di buon senso ...

    Non si sa nulla delle regole che ci sono nella tua azienda per le ferie e pensi che qualcuno si metta a definire il DB e il codice per quei "criteri" che hai indicato?

    Insomma, è una questione che prevede un bel po' di tempo per l'analisi dei requisiti e anche un impegno economico per un professionista che ti dia queste indicazioni ...
  • Re: Overlap intervalli temporali

    Drome dario,
    oltre quanto indicato ti suggerisco quanto segue.
    Prima cosa, modifica il titolo del thread, in modo che un futuro lettore possa comprendere l'argomento di cui si tratta.
    Secondo, comincia con una analisi dei dati e delle funzioni che vuoi assicurare; ad esempio se non vuoi che vi siano sovrapposizioni di ferie (anche per un giorno) fra i dipendenti valuta i vari casi che possono accadere.
    Graficamente i due periodi di ferie si possono presentare secondo il seguente schema:
    
        #================#
    |-------|
                        |--------|
              |----|
    |-----------------------------|
    
    ove:
    - i periodi si intersecano per un solo estremo;
    - il primo periodo contiene completamente il secondo;
    - il primo periodo è completamente contenuto nel secondo.

    cio è implementabile, (in base a come gestisci la tabella ferie dei dipendenti) effettuando un controllo multiplo fra gli intervalli come riportato nei seguenti link:
    https://chandoo.org/wp/2010/06/01/date-overlap-formulas/
    http://salman-w.blogspot.it/2012/06/sql-query-overlapping-date-ranges.html
    http://allenbrowne.com/appevent.htm
    https://stackoverflow.com/questions/4490553/detect-overlapping-date-ranges-from-the-same-table
  • Re: Overlap intervalli temporali

    Ciao Willy, è quello che cercavo, grazie
    solo una precisazione, per ora il database è un abbozzo, il mio obiettivo principale è questo, ti faccio un esempio:

    Dipendenti:

    1)Mario-vendite
    2) dario - acquisti
    3) paolo - vendite
    4) giovanni - vendite
    5)luca - acquisti
    6) davide - acquisti


    ora, inserendo le ferie, non voglio lasciare un reparto scoperto (vendite o acquisti nell'esempio)
    quindi le ferie possono andare in overlap (per overlap intendo anche per un solo singolo giorno, non mi interessa il tipo di overlap), purché nel reparto acquisti e vendite non ci siano più del 50% di assenze.
    negli ottimi esempi che mi hai dato non mi sembra ci sia un opzione del tipo


    willy55 ha scritto:


    Drome dario,
    oltre quanto indicato ti suggerisco quanto segue.
    Prima cosa, modifica il titolo del thread, in modo che un futuro lettore possa comprendere l'argomento di cui si tratta.
    Secondo, comincia con una analisi dei dati e delle funzioni che vuoi assicurare; ad esempio se non vuoi che vi siano sovrapposizioni di ferie (anche per un giorno) fra i dipendenti valuta i vari casi che possono accadere.
    Graficamente i due periodi di ferie si possono presentare secondo il seguente schema:
    
        #================#
    |-------|
                        |--------|
              |----|
    |-----------------------------|
    
    ove:
    - i periodi si intersecano per un solo estremo;
    - il primo periodo contiene completamente il secondo;
    - il primo periodo è completamente contenuto nel secondo.

    cio è implementabile, (in base a come gestisci la tabella ferie dei dipendenti) effettuando un controllo multiplo fra gli intervalli come riportato nei seguenti link:
    https://chandoo.org/wp/2010/06/01/date-overlap-formulas/
    http://salman-w.blogspot.it/2012/06/sql-query-overlapping-date-ranges.html
    http://allenbrowne.com/appevent.htm
    https://stackoverflow.com/questions/4490553/detect-overlapping-date-ranges-from-the-same-table
  • Re: Overlap intervalli temporali

    Quando dici che il DB è abbozzato comprendi che non ci dici nulla di utile...?
    Mi verrebbe da dirti che devi aver definito i reparti e la conseguente assegnazione del personale per ogni reparto... e per ogni reparto la percentuale di accettabilità di assenza contemporanea.
    Detto questo con i suggerimenti di Willy fai una query di ricerca e conteggio che ti dice quante collisioni ci sono prima di salvare la richiesta.

    Tutto questo è apparentemente banale se il tuo DB è abbozzato in modo adeguato... ma questo è tutt' ora un segreto...
  • Re: Overlap intervalli temporali

    drome dario ha scritto:


    ... negli ottimi esempi che mi hai dato non mi sembra ci sia un opzione del tipo
    La logica è sempre la stessa, dovrai stabilire, prioritariamente, un criterio legato al Reparto (Acquisti/Vendite) e assegnare i rispettivi dipendenti, controllando quindi le ferie per ciascun reparto.
  • Re: Overlap intervalli temporali

    willy55 ha scritto:


    drome dario ha scritto:


    ... negli ottimi esempi che mi hai dato non mi sembra ci sia un opzione del tipo
    La logica è sempre la stessa, dovrai stabilire, prioritariamente, un criterio legato al Reparto (Acquisti/Vendite) e assegnare i rispettivi dipendenti, controllando quindi le ferie per ciascun reparto.
    grazie a tutti

    ok willy, credo sia quello che mi interessava, faccio delle prove (lento pede) e vediamo come va
Devi accedere o registrarti per scrivere nel forum
7 risposte