Potrzebuję zrobić wykresy, które również będą pełniły funkcję archiwum. Załóżmy że od dnia dzisiejszego przez następne parę miesięcy, chcę aby na wykresie były przedstawiane pewne dane z dość dużą częstotliwością. Tutaj rodzi się moje pytanie - jak się za to zabrać? Dobrym przykładem o co mi chodzi, będą np. wykresy kursu na giełdzie. Czy naprawdę to wszystko będę musiał trzymać w bazie? Jeden wykres będzie się aktualizował co 10-30 minut. A takich wykresów (różnych) będę miał multum.
Co Ci jest potrzebne na wykresie? Wartość danej cechy, dla której chce robić wykres oraz jakaś jednostka obrazująca postęp. Wystarczy Ci ze będziesz przy każdej wartości zapisywanej do bazy, dodawał w kolumnie obok czas, kiedy był wykonywany ów pomiar. Na osi X dasz czas, na osi Y wartości.
Aktualizacja wykresu co 10-30 minut to nic strasznego, gorzej jakbyś mierzył 100 parametrów w odstępach jednosekundowych.
Użyj jakiejś biblioteki do wykresów i tyle. Czy mogę jeszcze jakoś pomóc?
Rozumiem, że chodzi Ci o wykresy dostępności stron?
Ja zrobiłbym w bazie 2 tabele: strony i dostępności. Jak powinna wyglądać tabela strony, wiadomo. W tabeli dostępności zapisywałbym id strony, stan i znacznik czasowy. Na podstawie tych danych generowałbym dopiero wykresy, dynamicznie oczywiście, ew. z jakimś cachowaniem.
Tylko zastanawia mnie tutaj analogia do wykresów kursu na giełdzie...
Dziękuję obu Panom za odpowiedź. Myślałem o takim rozwiązaniu jak piszecie, ale też zastanawiałem się czy po jakimś czasie baza nie będzie za bardzo zaśmiecona. Jeszcze raz dzięki :)
Nie musisz dla każdego punktu/stanu tworzyć nowego wiersza. Przy takiej ilości danych czytelność już chyba nie gra roli, dlatego ja zawsze staram się tworzyć już "zestaw" danych / wiersz.
Gdyby dostepność była mierzona raz dziennie (true/false) 1. wiersz mógłby przechowywać dane z całego roku:
id / idStrony / styczen / luty / marzec / kwiecien...
styczeń: [1,0,0,1,1,1,1,0,1,1,1...]
To tylko głupi przykład. Pobranie 1 wiersza z roku i podzielenie w PHP na 365 dni będzie szybsze niż pobranie 365 wierszy.
W twoim przypadku byłoby to 17520 wierszy (24 * 2 * 365) na stronę, co przy 1000 stron daje już 17 i pół miliona wierszy. A fajnie byłoby mieć statystyki z kilku lat... Ciekawe czy w Twoim przypadku nie lepiej byłoby przechowywać danych w plikach :) To już wykracza poza moją wiedzę.