Format tabeli

  • Rejestracja: dni
  • Ostatnio: dni
0

Witam,

muszę w bazie stworzyć nową tablę z danymi jak poniżej. Mój problem to jak stworzyć poprawnie tablę aby agregować taką macierz wiedząc, że takich struktur będzie kilkadziesiąt.

Struktura danych w załączniku52456bcb39.png

Z góry dziękuję:)

BA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 33
0

Ale właściwie to z czym jest tutaj problem ?

  • Rejestracja: dni
  • Ostatnio: dni
0

co te dane przedstawiają? wiersz to data a kolumna to...?

ogólnie tabela powinna mieć kolumny:
Data
Liczba z nagłówka kolumny
Wartość.

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
1
misiakufal_loggedoff napisał(a):

ogólnie tabela powinna mieć kolumny:
Data
Liczba z nagłówka kolumny
Wartość.

z tym, że nie koniecznie - czasami lepiej (pod względem wydajności i prostoty obsługi) jest dodać x kolumn od np. K1 do Kx i zapisywać to tak jak w excelu.
Ważne co z tym będziesz robił dalej

  • Rejestracja: dni
  • Ostatnio: dni
0

Pierwszym moim pomysłem było zbudowanie tabeli w następujący sposób:

Nazwa Data godz1 ........ godz744
xyz 1.01.2000 2 1

problem przy przy tej formie jest taki, że gdy chcemi przeanalizować konkretny dzień musimy go obliczyć, a nie wszystkie miesiące są równe (np.: Luty). Dodatkowo dla jednego miesiąca mogą występować tabele o różnych nazwach oraz dla jednej nazwy i tego samego miesiąca ale różnych lat. Wiec myślałem że gdy zrobię to w formie:

Nazwa Data godz wartość2000 wartość2001
xyz 1.01 1 1 1
xyz 1.01 2 1 1
xyz 1.01 3 1 1
xyz 1.01 4 1 1
xyz 1.01 5 1 1
xyz 1.01 6 1 1
xyz 1.01 7 1 1
xyz 1.01 8 1 1
xyz 1.01 9 1 1
.
.
.
xyz 31.01 21 1 1
xyz 31.01 22 1 1
xyz 31.01 23 1 1
xyz 31.01 24 1 1
xyz 1.02 1 1 NULL
xyz 1.02 2 1 NULL
xyz 1.02 3 1 NULL
xyz 1.02 4 1 NULL
xyz 1.02 5 1 NULL
xyz 1.02 6 1 NULL

Może pojawiać się wiele pól pustych. Dotatkowo tabela robi się strasznie długa - ilość nazw x liczba dni w miesiąca dla których są dane.

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
0

obydwa pomysły to wg mnie bzdura, szczególnie ten z polami od 1 do 744. Nadal jak dla mnie podstawowym wyborem jest między

data, nazwa, h1..h24
a
data, nazwa, godzina, wartosc

i wybór ten mocno zależy od tego co potem chcesz z tymi danymi robić i jaki jest stosunek godzin z wartością do godzin bez wartości w miesiącu

  • Rejestracja: dni
  • Ostatnio: dni
0
abrakadaber napisał(a):

obydwa pomysły to wg mnie bzdura, szczególnie ten z polami od 1 do 744. Nadal jak dla mnie podstawowym wyborem jest między

data, nazwa, h1..h24
a
data, nazwa, godzina, wartosc

i wybór ten mocno zależy od tego co potem chcesz z tymi danymi robić i jaki jest stosunek godzin z wartością do godzin bez wartości w miesiącu

Czym się różni Twój drugi pomysł do mojego drugiego pomysłu?

Nazwa Data godz wartość2000 wartość2001
xyz 1.01 1 1 1
xyz 1.01 2 1 1
xyz 1.01 3 1 1
xyz 1.01 4 1 1
xyz 1.01 5 1 1
xyz 1.01 6 1 1
xyz 1.01 7 1 1
xyz 1.01 8 1 1
xyz 1.01 9 1 1
.
.
.
xyz 31.01 21 1 1
xyz 31.01 22 1 1
xyz 31.01 23 1 1
xyz 31.01 24 1 1
xyz 1.02 1 1 NULL
xyz 1.02 2 1 NULL
xyz 1.02 3 1 NULL
xyz 1.02 4 1 NULL
xyz 1.02 5 1 NULL
xyz 1.02 6 1 NULL

rozwiązanie to wg mnie pozawala na skrócenie tabeli poprzez wpisywanie wartości dla danego roku w kolumnach.

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
0

no bajer, a jak przewidziana ilość lat się skończy to oprócz dodawania nowych kolumn trzeba będzie jeszcze przerabiać wszystkie zapytania. Jednym słowem ideał...

W2
  • Rejestracja: dni
  • Ostatnio: dni
0

Nie wiem co dokładnie chcesz osiągnąć, ale mam wrażenie że kombinujesz strasznie.
Jeśli chcesz po prostu ((data+godzina) - (odczyt)) to czemu nie zrobisz:

ID DATAODCZYTU ODCZYT

Gdzie Data Odczytu to będzie DateTime ?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.