Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    suggerimenti su gestione turni di servizio effettuati

    Buonasera, a causa di vicissitudini varie sono un po' fuori dallo sviluppo di siti da qualche anno, ora sto sviluppando, gratuitamente perchè serve a me principalmente, un piccolo gestionale amatoriae per un associazione e sono entratto in loop su come progettare la gestione dei servizi effettuati.
    Mi trovo con un numero di persone variabile per ogni servizio, la mia idea iniziale era di concatenare gli id dei vari volontari e poi usare explode in fase di visualizzazione, però mi trovo ad avere un dubbio sulla praticità della cosa anche per fare ricerche, estrazioni di dati per registri e conteggi delle ore totali di servizio.
    Avete suggerimenti da darmi?

    Ovviamente uso PHP, DB MYSQL e un pizzico di js se serve.
    Never care for what they say, Never care for games they play. Never care for what they do, Never care for what they know.
    «Solo due cose sono infinite: l’universo e la stupidità umana, e sul primo non sono sicuro». (A. Einstein)

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Dovresti spiegare per bene la situazione e cosa devi ottenere, non si capisce cosa devi fare.

  3. #3
    allora devo creare un archivio di turni di servizio con data, ora inizio, ora fine, tipologia, note e id_volontari che hanno partecipato al servizio.
    il problema su cui sto riflettendo (sono arrugginito da anni in cui non manipolavo dati) è dei id_volontari, la prima cosa che mi è venuta in mente è usare dei checkbox in fase di inserimento e manipolare le stringhe usando un separatore e poi fare un explode() in fase di visualizzazione, ma i dubbi li ho sulla praticità in fase di estrazione dati e calcolo delle ore. Altra idea è creare più tabelle relazionate tra loro es. una per servizi e poi una per indicare le ore dei vari volontari.
    Never care for what they say, Never care for games they play. Never care for what they do, Never care for what they know.
    «Solo due cose sono infinite: l’universo e la stupidità umana, e sul primo non sono sicuro». (A. Einstein)

  4. #4
    doppio
    Never care for what they say, Never care for games they play. Never care for what they do, Never care for what they know.
    «Solo due cose sono infinite: l’universo e la stupidità umana, e sul primo non sono sicuro». (A. Einstein)

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Non capisco perché dovresti manipolare degli id per estrarre dati da parti di essi.
    Hai una tabella con
    data - ora inizio - ora fine - tipologia - note - id_volontario

    Ogni riga sarà relativa ad un servizio svolto da un volontario in un dato giorno in una specifica fascia oraria, ad esempio

    2025-11-13, 08:00, 12:30, assistenza clienti, ..., 12
    2025-11-13, 08:00, 12:30, assistenza clienti, ..., 27
    2025-11-14, 09:20, 16:30, riordino magazzino, ..., 64
    2025-11-14, 15:00, 17:30, cassa, ..., 27

    quindi il giorno 13, sia il volontario 12 che il 27 hanno fatto assistenza clienti nella stessa fascia oraria, il volontario 27 il giorno seguente è stato alla cassa.

    Se non è questo che ti serve, fa qualche esempio concreto.

  6. #6
    questa è la struttura della tabella, pensata inizialmente per contenere i turni senza appoggiarmi ad una seconda limitando la quantità di dati
    codice:
    id` int(11) NOT NULL AUTO_INCREMENT,
      `id_volontarii` varchar(255) NOT NULL,
      `data_s` varchar(10) NOT NULL,
      `inizio` varchar(5) NOT NULL,
      `fine` varchar(5) NOT NULL,
      `id_tipo_servizi` int(255) NOT NULL,
      `id_mezzo` int(3) NOT NULL,
      `km_inizio` int(255) NOT NULL,
      `km_fine` int(255) NOT NULL,
      `comune` varchar(255) NOT NULL,
      `id_percorso` int(255) NOT NULL,
    id_volontari doveva essere un raccoglitore per indicare i partecipanti, poi mi son venuti i dubbi sul fatto che potesse essere fatta meglio
    Never care for what they say, Never care for games they play. Never care for what they do, Never care for what they know.
    «Solo due cose sono infinite: l’universo e la stupidità umana, e sul primo non sono sicuro». (A. Einstein)

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    La struttura del DB deve essere funzionale all'applicazione, non deve pensare al risparmio di dati, che poi per manipolarli perdi tempo e memoria.
    In teoria basterebbe una tabella per fare tutto in tutte le applicazioni, ma verrebbe con uno sproposito di colonne, meglio avere più tabelle con dati ben ordinati.
    Per ulteriori informazioni su come progettare un DB, dato che esistono metodologie ben definite, chiedi nella sezione Database.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    La struttura del DB deve essere funzionale all'applicazione
    ... e lo sarà solo se rispetterà le regole di normalizzazione. Quindi:

    1) Tabella Volontari
    2) Tabella Servizi
    3) Relazione N:M tra le due precedenti implementata tramite Tabella Volontari-Servizi

    Ma, come giustamente osservato, non è un problema che riguarda PHP.

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