Sto utilizzando MS Sql Server e il mio sistema contiene i dati sull'utilizzo energetico in una tabella come timestamp e valori per KW (due colonne). Questi dati vengono raccolti ad intervalli di 1 ora. Alla fine del mese ho bisogno di calcolare l'utilizzo di picco e fuori picco. La definizione di "peak and off peak" dipenderà dal contratto con la società di servizi. Quindi, ad esempio, l'utility 'x' potrebbe avere
- Dal lunedì al venerdì - dalle 7:00 alle 21:00 è in vetta e dalle 21:00 alle 7:00 è fuori punta
- Sabato - dalle 9:00 alle 15:00 è in vetta e dalle 15:00 alle 9:00 non è attivo
- Domenica - Tutto il giorno non è attivo
- Stat Holiday - Tutto il giorno non è al massimo
L'utilità 'y' avrebbe un programma diverso per le ore di punta e non di punta Ho difficoltà a modellare la settimana del giorno e il tempo corrispondente in modo da rendere più facile la selezione dei dati per il picco e il fuori picco dalla mia tabella di utilizzo. Sono abbastanza sicuro che mi servirebbe una tabella di ricerca per le festività. La mia tabella genitore sarebbe la tabella delle utilità.
Opzione 1: una tabella piatta con molte colonne - MondayOnPeakStart, MondayOnPeakEnd, MondayOffPeakStart, MondayOffPeakEnd, TuesdayOnPeakStart .....
La selezione dalla tabella di utilizzo sarebbe piuttosto brutta.
Opzione n. 2: una struttura di tabella normalizzata. È qui che sono bloccato e non posso decidere come strutturare la gerarchia.
Per ogni società di servizi pubblici, ho due tipi: onPeak e offPeak e per ognuno di questi tipi ho un programma che contiene giorni della settimana e orari di inizio e fine. Otterrò più righe per il picco e non sono sicuro di come lo userò nella clausola select della tabella di utilizzo.
Opzione n. 3: qualcosa a cui non ho pensato.