[Delphi] MYSQL zapisywanie tablicy w bazie

0

Mam spora tablice liczb rzeczywistych lub całkowitych którą muszę umieścić w bazie MYSQL (spora= od kilku do kilku tysięcy elementów). Pytanie - jak zapisać najefektywniej je w polu blob?

0

A dlaczego w polu Blob?? Z tego co się orientuję pole Blob stosuje się najczęściej do przechowywania grafik.

Nie lepiej po prostu zrobić tabele z polami: id (integer) jako primary key, value (float) do przechowywania wartosci?

Dla MySQL kilkanaście tysięcy to nie dużo:)

0

Problem polega na tym ze tablice maja rożny rozmiar, ilość elementów tez jest nie określona z czasem się ich trochę dodaje do bazy. Kilka tysięcy dla tablicy ok. ale jak będzie kilka tysięcy tablic?? Dodatkowo typ danych nie musi być zawsze taki sam w tablicach dane mogą mieć różny typ danych wiec uniwersalnym rozwiązaniem było by to ładowanie właśnie do bloba jako strumień jak grafikę (jeśli się da) . Tak mi sie przynajmniej wydaje chyba chyba ze istnieje jakieś lepsze rozwiązanie.

0

Proponuje varchar'a i ew. dodatkowe pole okreslajace typ danych.

0

a co chcesz potem robić z tymi danymi, któe zapiszesz?

0

Są to wyniki pomiarów. Które maja być udostępniane do dalszej analizy. Z poziomu aplikacji przez algorytmy napisane do niej a także jako dane wejściowe do innych programów (przekazywane przez aplikacje).

0

no to wypadało by najpierw te dane usystematyzować i jakoś posortować a dopiero potem zastanawiać się nad strukturą tabel
BTW jakby mi ktoś dał dane do analizy, które wyglądały by tak

1
2
kot
drzewo
5
biały
-2
rower

to bym mu powiedział "spieprzaj dziadu" :p

0

eeee hmm nie tak! To co jest trzymane w tablicach to tylko zarejestrowane przebiegi czasowe lub dane które są wynikiem danej analizy. Cala reszta danych potrzebnych do konkretnych analiz czy tez sortowania wyników, parametry, dane opisowe dostarczane i przetrzymywane są osobno bazie.

0

to ja proponuję zapisać to w tablicy

  • id autoinc
    wartosc_pomiaru typ_rzeczywisty-patrz niżej
    numer_pomiaru (id_pomiaru) int
w mysqlu są napisał(a)

| REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
| DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]
| FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]
| DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL]
| NUMERIC(length,decimals) [UNSIGNED] [ZEROFILL]

i jeśli potrzeba dodatkowa tablica
pomiary
*id_pomiaru
reszta danych

0

I tu wracamy do sedna sprawy! Czyli wynikiem pomiaru nie jest jedna liczba rzeczywista ale tablica (przebieg czasowy, macierz danych wynikowych z konkretnej analizy) Baza musi być na tyle uniwersalna ze sama struktura tych danych (pomiar obliczenia) może być różna, a jednak jakoś musi być zapisana, bez konieczności ingerencji w strukturę samej bazy danych. (dane opisowe to zupełnie inna sprawa i tu wiadomo ze musi być sztywna struktura)

0

no to powiedz mi cóż CI można powiedzieć (napisać) jeśli nie jesteś w stanie (nie chcesz) podać ani jednego konkretu odnośnie danych, które mają być zapisane. Zastanó się co masz i co chcesz wyciągać z bazy i postaraj się jak najdokładniej odpowiedzieć na

  1. co dostajesz z pojedyńczego pomiaru (nie serii)
  2. ile jest typów pomiarów (za dwa różne typy uznaj pomiary, ktÓre zwracają różne typy danych i/lub różną ilość danych, np, jeden zwraca wartość typu int a drugi typu punkt)
  3. jak opisana jest pojedyńcza seria pomiarowa (czyli jakie dodatkowe dane oprócz czasu i wartości w nim są jeszcze potrzebne)
  4. co chcesz wyciągnąć z bazy (całą serię, średnie (min, max itp) z serii, tylko część serii itp
0

Dodam tylko, że dokładnie to samo musisz rozważyć nawet w przypadku gdybyś chciał dane umieszczać w pliku, a ten przechowywać jako BLOBa

1 użytkowników online, w tym zalogowanych: 0, gości: 1