Baza danych ma zawierać dane statystyczne. Danych np. będzie 30 rodzai i powtarzać się będą w 40 państwach.
sprawdzianem koncepcyjnej łatwości poruszania się po bazie jest uzyskanie zestawienia :
- dla danego państwa
1. rok publikacji danej statystycznej
2. nazwa danej statystycznej
3. listing dat publikacji w ciągu roku (np. dla danych miesięcznych)
4. i coby można teraz było kliknąć w konkretną datę i otrzymać cały pakiet informacji na temat tej opublikowanej danej
Na jednej stronie powinno znaleźć się kompletne zestawienie wszystkich roczników wszystkich publikacji wszystkich danych dla danego państwa (od początku, umówmy się że startujemy od 2005 roku).
Pierwsze podejście
1. dla każdej danej statystyczej dla danego państwa w danym roku załozyłem osobną tabelę. W nazwie tabeli był rok publikacji, kod państwa i kod danej statystycznej
nieco problematyczne stało się dla mnie uzyskanie w/w zestawienia więc (sięgając prawą ręką do lewej kieszeni) utworzyłem tabele pomocnicze ułatwiajace uzyskanie 'pośrednich' wyników
2. jako tabele pomocnicze utworzyłem:
-tabelę zawierającą lata z kolumną wskazującą czy w danym roku została opublikowana jakakolwiek dana (znaczy 0 lub 1)
-tabele 'rocznikowe' zawierające kody tabel wskażników które zostały opublikowane w konkretnym roku. Nazwa takiej tabeli zawiera konkretny rok.
bazując na takich tabelach udało mi się uzyskać w/w zestawienie. Ale ...
No bo przecież zawsze wreszcie kiedyś pojawia się jakieś ale (no, chyba że jesteśmy permanentnie zadowoleni z wykonanej pracy ..

Właśnie. Ale przydałby się (właściwie większy nacisk kładziony jest na wizualizację danych niz zwykłe zestawienie) wykres ukazujący kształtowanie się danej statystycznej przez wieki (i eony). O ile dobrze kumam musiałbym łączyć (JOIN?) wyniki z każdego roku aby móc wygenerować taki wykres. Hmmm ..
drugie podejście
1. dla każdej danej statystyczej dla danego państwa załozyłem osobną tabelę. W nazwie tabeli był kod państwa i kod danej statystycznej. W takiej tabeli znalazły sie wszystkie publikacje konkretnej danej statystycznej. W tabeli jest data publikacji danej, rok którego dana dotyczy (bo np. w styczniu publikuje sie dane za grudzień poprzedniego roku) i znacznik (0 lub 1) czy ta konkretna dana została opublikowana (w tabeli przygotowane są miejsca pod wszystkie publikacje od stycznia 2005 ale niektóre publikacje się nie odbyły).
Teraz pobranie wartości dla wygenerowania wykresu jest banalne ale co z usyskaniem w/w zestawienia?
Właściwie okazało się że wcześniej utworzone owe tabele pomocnicze nadal są przydatne i - poza małą kosmetyką - nic w kodzie generowania zestawienia zmieniać nie trzeba. Ale czy takie podejscie jest właściwe? Osobiście czuję pewien podświadomy dyskomfort - że nie tak powinno się to zrobić, stąd też moja prośba o pomoc w przemyśleniach. Generalnie chętnie pozbyłbym się tych tabel pomocniczych przydatnychh we właściwym 'wizualnym' skomponowaniu zestawienia.
ps. oczywiście, jak zapewne się juz domyślacie są jeszcze dwie pomocnicze tabele - jedna zawiera nazwy państw i przyporządkowane im kody a druga nazwy danych statystycznych i przyporządkowane im kody. Wcześniej o nich nie wspominałem bo i w jednym i drugim przypadku są (tak sądzę) niezbędne.
-------------------------------------------------------------------------------
no dobrze, zacznijmy z innej beczki.
założenie - dane wyjściowe:
czas gromadzenia danych np. 20 lat
każdego roku mamy np.
40 państw
każde państwo ma po 15 wskaźników
każdy wskaźnik ma po 12 wpisów
rozwiązanie pierwsze
20 lat x(każdego roku powstaje 40x15 tabel po 12 wpisów), plus jakaś drobnica wspomagająca
czyli z grubsza 12.000 tabel po 12 wpisów plus 20-30 tabel wspomagających
// każda tabela zawiera wskażniki z danego roku dla danego państwa
rozwiązanie drugie
w ciągu 20 lat powstanie 40x15 tabel po 20x12 wpisów(600 tabel po 240 wpisów), plus 20-30 tabel wspomagających
// każda tabela zawiera wskażnik dla danego państwa ze wszystkich lat występowania wskaźnika (max to 20 lat)
pomyślałem właśnie o pewnej wariacji tego rozwiązania:
40 tabel (państwa) po 15 wskażników x 12 wpisów x 20 lat czyli 40 tabel po 3600 wpisów
rozwiązanie trzecie
w ciągu 20 lat powstanie 20 tabel (rocznikowych) po 40x15x12 wpisów (20 tabel po 7200 wpisów),
// każda tabela zawiera wszystkie wskażniki dla wszystkich państw dotyczące (lub opublikowane, zależy od podejścia) danego roku
baza to MySQL.
może takie przedstawienie problemu pomoże wam w zajęciu konstruktywnego stanowiska tzn. jakie podejście (zapewne z opcji 2 i 3) wybrać.
Wydaje mi się że najbardziej eleganckie jest podejście 3-cie, nie znam jednak wydolnosci pracy MySQL na takich tabelach, każdy pojedyńczy wpis to będzie po 20 zmiennych.
No i powraca kwestia wykonania w jednym przelocie (wyświetleniu) takiego zestawienia jak w pierwszym poście. Tzn. chodzi o wyświetlenie na jednej karcie państwa wszystkich wskaźników je opisujących poselekcjonowanych latami.
Nazwę państwa mamy z nadania (więc nie trzeba jej szukać)
---wyświetlenie roku (przy rozwiązaniu 2-gim korzystam z tabel pomocniczych)
-------wyświetlenie nazwy wskaźnika
------------wyświetlenie linków do konkretnych danych z pojedyńczych miesięcy w danym roku
-------wyświetlenie nazwy wskaźnika
------------wyświetlenie linków do konkretnych danych z pojedyńczych miesięcy w danym roku
-------wyświetlenie nazwy wskaźnika
------------wyświetlenie linków do konkretnych danych z pojedyńczych miesięcy w danym roku
---wyświetlenie roku
-------wyświetlenie nazwy wskaźnika
------------wyświetlenie linków do konkretnych danych z pojedyńczych miesięcy w danym roku
-------wyświetlenie nazwy wskaźnika
------------wyświetlenie linków do konkretnych danych z pojedyńczych miesięcy w danym roku
-------wyświetlenie nazwy wskaźnika
------------wyświetlenie linków do konkretnych danych z pojedyńczych miesięcy w danym roku
itd.
pzdr.
PS. tak sobie myślę że rozwiązanie 2B ma wiele plusów
- cały materiał pojedyńczego państwa w jednej tabeli
- przeszukanie pod wykres tylko z jednej tabeli
- przeszukanie pod zestawienie też wydaje mi się (teoretycznie) w miarę proste
- odpadają roczne tabele pomocnicze
-------------------------------------------------------------------------------
zawalczyłem z wariantem 2B
niestety, w połowie tworzenia zestawienia pojawia się potrzeba wyświetlenia nazwy danych (alfabetycznie ASC). A ja mam do dyspozycji jedynie przypisane kody. Co prawda mogę wykonac zapytanie do tabeli z nazwami ale otrzymam w odpowiedzi nazwy danych pojedyńczo czyli nie będą uporzątkowane alfabetycznie. Chcąc nie chcąc roczne tabele pomocnicze pozostają (na tym etapie mojej wiedzy).
w efekcie mam (będę miał) 40 tabel państwowych i ok. 22-3 pomocniczych.
Dwa dni istnienia postu i nikt jeszcze kamyka tu nie wrzucił

Wdzięczny byłbym za pomoc z takim oto dylematem kretyna:
w tej chwili wspólne kolumny dla 2-ch tabel to kod przypisany danym. sortowanie nic tu nie da bo nazwy danych nie były wprowadzane w kolejności alfabetycznej. I to wymusza korzystanie z tabel pomocniczych które dają właśnie możliwość sortowania. A gdyby częścią wspólną uczynić nazwę danej a nie przypisany jej kod? LUb zduplikować te dwie kolumny w obu tabelach. We wrednej sytuacji można by wykorzystać nazwę i wtedy nie trzeba by nawet sięgać po tę nazwę do innej tabeli a i posortować je można na miejscu. A w sytuacjach niekrytycznych można by korzystać z kodów przypisanych coby baza nie mieliła nazw po próżnicy.