@mmmmmmm podał chyba najbardziej optymalne rozwiązanie Twojego pierwszego problemu... na jaki inny pomysl wpadles, jezeli moge zapytac?
co do tego:
Cytat
Chodzi mi o przedział czasowy, że godziny danego nauczyciela nie mogą się krzyżować.
Godziny mam w kolumnach start i stop w formacie H:i:s
prawdopodobnie musisz przed dodaniem sprawdzić zapytaniem ten warunek.
np.
SELECT id FROM tabela WHERE nauczyciel=ID_NAUCZYCIELA AND (WARUNEK1 OR WARUNEK2 OR WARUNEK3 OR WARUNEK4)
przy czym WARUNEK1 to: start>START_DO_WPISANIA AND stop>STOP_DO_WPISANIA
itd. najlepiej rozrysuj sobie to na osi. są 4 takie warunki.
założenie jest oczywiście takie, że sprawdzasz sobie wcześniej, że stop>start
rozwiązanie nie jest szczególnie oszczędne w czas i pamięć, ale rozumiem, że nie będzie to system, który non stop dodaje te godziny, tylko zrobi to generator raz na pół roku, ewentualnie raz na miesiąc.