Visualizzazione dei risultati da 1 a 10 su 10

Discussione: strutturare db

  1. #1

    strutturare db

    Sto cercando di realizzare un sito per la gestione di un elenco di turni mensile.
    Ogni giorno di ogni mese ci sono da 1 a infinito persone che si possono segnare di turno, con due orari differenti per ogni giorno.
    Devo memorizzare in database tutti i turni di tutti i mesi, e mantenerli per vari anni...

    Ho realizzato la tabella del mese, dove ho le caselle di testo in cui le persone possono aggiungersi (in realtà i nomi devono essere pescati da un altra tabella)

    Il problema è che non riesco a venire a capo sul come strutturare la tabella dei turni.
    Se nella tabella dei turni creassi una riga ogni mese, questa riga dovrebbe avere 62 colonne... (i giorni del mese per i due turni!)
    Mentre se facessi una riga per giorno ogni riga avrebbe solo 2 colonne, ma ci sarebbero tantissime righe...
    Secondo voi cosa conviene fare? altre soluzioni?

  2. #2
    nel database metti un campo chiamato turno, siccome i turni sono 2 secondo me basterebbe che se turno nel db è 1 lo recuperi con php e poi con una variabile lo specifiche e poi lo fai anche con il secondo turno.
    Spero di aver capito bene

  3. #3
    Probabilmente non sono stato molto chiaro io...
    Io devo ancora strutturare la tabella del database, sul come recuperare le persone che sono nel turno e metterle nella pagina ho già idea come fare, anche se dipenderà da come strutturo la tabella del database!
    Il fatto è che inserire un campo "turno" è abbastanza ovvio, ma a me interessa un consiglio sul resto della tabella...
    Posso realizzare una tabella de genere:
    TABLE TURNI:
    Mese | giorno 1 turno A | Giorno 1 Turno B | Giorno 2 Turno A ....... | Giorno 31 Turno B

    Oppure con:
    TABLE TURNI

    Giorno - mese -anno | Turno A | Turno B


    Ovviamente nel primo caso avrò una tabella turni con poche righe ma 62 colonne.
    Nel secondo caso avrò 30/31 righe al mese, ma solo 2 colonne!

    Non saprei quale dei due metodi è il migliore (per performance, correttezza metodologica ecc. ecc.) o se ne esiste un terzo, che mi sfugge, più furbo per realizzarlo!

  4. #4
    Di getto io farei una sola tabella, "Tabella turni":

    utente
    anno
    mese
    giorno
    turnoA
    turnoB

    Da li poi ricavare quello che credi, intanto uno che si logga vede solo i suoi turni

  5. #5
    In effetti ci potrebbe stare... E' un po' scomodo ricavare il prospetto mensile però fattibile comunque...

    Però a quel punto si ha molto facilmente il prospetto ore mensile per ogni utente...

    Questa la tengo presente Grazie! Altre idee?

  6. #6
    Originariamente inviato da aleritty

    Ovviamente nel primo caso avrò una tabella turni con poche righe ma 62 colonne.
    Nel secondo caso avrò 30/31 righe al mese, ma solo 2 colonne!

    Non saprei quale dei due metodi è il migliore (per performance, correttezza metodologica ecc. ecc.) o se ne esiste un terzo, che mi sfugge, più furbo per realizzarlo!
    Meno colonne hai e meglio è. SEMPRE ;-)

  7. #7
    Beh, però più righe ho più lavoro ha da fare la query SELECT in teoria...

  8. #8
    Beh il risultato è obbligato ad essere stampato in molte righe (a meno che coloro che segnano i turni non siano solo un 5 o 6)
    Avrai tante righe quanti i giorni moltiplicati per gli utenti che annoteranno il loro turno.

  9. #9
    E vaaaaabbene...
    Mi avete convinto!

    Grazie a tutti dell'aiuto!

  10. #10
    io ho lo stessissimo problema...

    mi chiedo...come faccio a sapere quali giorni sono festivi?
    dovrei creare automaticamente la turnazione del mese successivo (per esempio gennaio 2009) ed ho una quarantina di utenti da disporre su 2 turni giornalieri....
    :master:

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.