Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Optymalizacja danych z 3 tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
ostry400
Witam
Może najpierw napisze pytanie które może być bez opisu poniżej bez sensu i ponowie je na końcu

Pytanie co lepiej:
1.Odejmować to w kodzie php/pdf za każdym razem kiedy plik jest odświeżany/otwierany (czasem 1 czasem 100 osób w jednym momencie otworzy tą stronę)

2.Stworzyć dodatkową tabele do której będę skryptem co 30 s obliczał wyniki i pakował tam za pomocą update ? a strona będzie już ładnie czysty wynik wyświetlała ?

Posiadam 3 tabele (w sensie do jednego wydarzenia wydarzeń w miesiącu jest kilka-kilkanaście )

Tabela 1 (czasy)
Struktura :
LP | ID | CZAS | Ile|

Tu wpadają wyniki przez jakiś czas (zazwyczaj od 1 do 24h) z średnią prędkością kilka do kilkunastu na minutę
I tabela posiada tak ok od 300-do 3000 rekordów

Wyniki dopisują się do niej co 30 s skryptem php

Tabela 2(czasy 2)
Taka sama zasada działania jak tabela 2 tylko działa jakby międzyczas

Tabela 3 (Wyniki)
Struktura |ID | czas1| czas2 | czas3 | czas4 | czas5| itd

Tu do czasu1 idzie rekord z tabeli 2
do kolumny czas 2 idzie z tabeli 1
do kolumny czas3 idzie z tabeli 1
do kolumny czas 4 idzie z tabeli 2
itd

Te czasy są updatowane także co 30 s z pliku php

ale problem pojawia się kiedy:

Potrzebuje czasy każdego punktu czyli czas 1 to czas1 ale drugi czas to czas 2-1 i analogicznie trzeci czas to 3-2

Przykład gość pobiegł na punkt pierwszy w czasie 00:20:00 na 2 punkcie był 00:40:00 na 3 był 00:45:00 na 4 byl 01:05:00
Czyli czas 1=00:20:00 czas 2=00:20:00 czas 3=00:05:00 czas 4 =00:20:00

Wyniki wyświetlam w PDF za pomocą php

Pytanie co lepiej:
1.Odejmować to w kodzie php za każdym razem kiedy plik jest odświeżany/otwierany (czasem 1 czasem 100 osób w jednym momencie otworzy tą stronę)

2.Stworzyć tabele do której będę skryptem co 30 s obliczał wyniki i pakował tam za pomocą update ? a strona będzie już ładnie czysty wynik wyświetlała ?
Pyton_000
Przy pobieraniu SQL zrób odejmowanie czyli

SELECT czas1, czas1-czas2 as czas2, czas3-czas4 as czas3 FROM ...

Tylko musisz to dostosować do formatu danych w jakich trzymasz czasy. Najłatwiej byłoby gdyby to był czas w s typu Int.
ostry400
No dobry pomysł zaraz go stestuje biggrin.gif

Tylko właśnie przyszło mi do głowy jeszcze jedno zapytanie trochę powiązane

Działanie bazy MySql a dokładnie tabeli optymalniej będzie:

1.w formie Full duplex (spora ilość zapisu i odczytu na raz) nie będą miały miejsca błędy questionmark.gif np że coś zgubi przy zapisie do bazy questionmark.gif tu plusy są że nie musi updatować 2 tabel tylko męczy jedną i dane są wyświetlane na żywo
2.czy lepiej podzielone na 2 tabele w formie do jednej idą pliki z zewnątrz cały czas a z drugiej odczyt do pdf cały czas a raz na minute tylko szybki transfer danych questionmark.gif

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.