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

Discussione: Gestione presenze

  1. #1

    Gestione presenze

    Salve a tutti, come da titolo, dovrei gestire delle presenze (e non solo), la mia domanda è semplice:
    Devo creare una tabella con 366 colonne per un anno solare (in manuale), o c'è una via più semplice e più comunemente utilizzata per questo tipo di cose?

    Grazie!

  2. #2
    se vuoi vedere anche le assenze, usa 3 tabelle
    1 - persone (idpersona, nome, cognome) con le informazioni delle persone
    2 - presenze (idpresenza, idpersona, data) dove registrerai solo le presenze
    3 - giorni (idgiorno, giorno) dove registrerai tutti i giorni solari - dal 1° gennaio al 31 dicembre - di tutti gli anno

    se NON vuoi vedere le assenze, bastano le prime due


  3. #3
    Quote Originariamente inviata da optime Visualizza il messaggio
    se vuoi vedere anche le assenze, usa 3 tabelle
    1 - persone (idpersona, nome, cognome) con le informazioni delle persone
    2 - presenze (idpresenza, idpersona, data) dove registrerai solo le presenze
    3 - giorni (idgiorno, giorno) dove registrerai tutti i giorni solari - dal 1° gennaio al 31 dicembre - di tutti gli anno

    se NON vuoi vedere le assenze, bastano le prime due

    Scusa, non ho capito, non sono pratico tra intrecci di tabelle.
    Mettiamo che voglio vedere la persona con idpersona 50 se l'ultimo dell'anno era presente, che è idgiorno 365.

    Come lo visualizzo nelle tabelle che hai creato sopra?

    Grazie.

  4. #4
    SELECT elenco_campi FROM persone PE JOIN presenze PR ON PE.idpersona=PR.idpersona WHERE idpersona=50 AND data='20181231'

    il formato della data dipende dal db che ovviamente ti sei dimenticato di indicare

  5. #5
    Quote Originariamente inviata da optime Visualizza il messaggio
    SELECT elenco_campi FROM persone PE JOIN presenze PR ON PE.idpersona=PR.idpersona WHERE idpersona=50 AND data='20181231'

    il formato della data dipende dal db che ovviamente ti sei dimenticato di indicare
    Per il discorso data, mi viene salvata in questo modo: 0000-00-00 00:00:00.

    Ma non capisco la logica:
    Nella prima tabella ho i nomi e niente più, ok.
    Nella terza ho praticamente il calendario e nulla più, ok.
    Ma la seconda, come fa a tenere separate le varie persone e abbinare tali presenze a tali persone?

    Altra cosa, sul tuo codice SQL, c'è Inner Join, Outer Join e Cross Join, cosa sono quei PE e PR, i nomi delle tabelle (PE = persone e PR = presenze?)?

  6. #6
    scusa, prima di procedere, che db stai usando? (lo dice anche il regolamento che va indicato, già nel titolo)

  7. #7
    Quote Originariamente inviata da optime Visualizza il messaggio
    scusa, prima di procedere, che db stai usando? (lo dice anche il regolamento che va indicato, già nel titolo)
    Scusami, è che non ho ben focalizzato la tua domanda.
    Utilizzo DataBase MySQL Server su Aruba e Altervista, in questo caso Aruba.

    Ho risposto?
    O ti serve altro?

  8. #8
    ok, per la data ti rifarai alla documentazione di MySql oppure ti aiuterà qualche altro forumista che conosce meglio di me MySQL

    per le domande
    -- PE e PR sono degli alias di tabella, per rendere più leggibile la query
    -- usa Inner Join
    -- per la logica: nella seconda tabella - come ti avevo detto - registri le presenze, cioè segni che il giorno x (data) la persona y (idpersona) era presente (in effetti non c'è tanto da capire, e non credo che ci siano altri modi di segnare una presenza )

  9. #9
    Quote Originariamente inviata da optime Visualizza il messaggio
    ok, per la data ti rifarai alla documentazione di MySql oppure ti aiuterà qualche altro forumista che conosce meglio di me MySQL

    per le domande
    -- PE e PR sono degli alias di tabella, per rendere più leggibile la query
    -- usa Inner Join
    -- per la logica: nella seconda tabella - come ti avevo detto - registri le presenze, cioè segni che il giorno x (data) la persona y (idpersona) era presente (in effetti non c'è tanto da capire, e non credo che ci siano altri modi di segnare una presenza )
    Non ti chiedevo il codice (almeno per ora ), ma la logica.

    Se ho capito bene, la seconda tabella ha 2 colonne + l' ID, giusto?
    Colonna 1: ID
    Colonna 2: Persona (che viene segnata solo se è presente)
    Colonna 3: Data

    Mettiamo che ho 100 persone, fa 100 record al giorno, giusto?

  10. #10
    se sono tutte presenti sì

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