Jestem w zaawansowanej fazie tworzenia narzędzia ułatwiającego układanie planu lekcji dla szkoły. Na początku pomyślałem, iż baza danych nie będzie bardzo potrzebna i do konfiguracji używam plików. To nie stwarza problemów.
Wykorzystałem trochę OOP i każdy nauczyciel jest instancją klasy "nauczyciel". Podobnie jest z salami i grupami/klasami.
Plan lekcji można definiować w 5-minutowych jednostkach czasowych. Gdy dodam nauczycielowi jakieś zajęcia np. "10:00-10:45 - Matematyka z Klasą I", to tworzy się 9 wpisów: dla każdych 5 minut w tych 45 minutach. To powoduje, iż teraz dla stworzonego przykładowego planu mam ponad 3800 wpisów 5-minutowych.
Problem pojawia się, gdy przetwarzam dane zapisane w sesji: np. do wyświetlenia statystyki nauczycieli, dziennego planu dla nauczyciela, itp. Wolno to wszystko chodzi.

Np. by pokazać plan dzienny dla nauczyciela przelatuję w pętli te wszystkie 5-minutówki, by wyszukać w nich te dotyczącego wybranego nauczyciela i odnoszące się do konkretnego dnia. Ze znalezionych 5-minutówek składam sobie tabelkę prezentującą dzienny plan.
Nie wiem zbytnio, jak to przyspieszyć. Pomyślałem, że stworzyć mogę indeksy na tych 5-minutówkach, by szybciej mieć dostęp do interesujących mnie zakresów, ale czy to ma sens?
Proszę o rady... (słowa krytyki też przyjmę)