Kurcze, przeczytałem Twojego posta i zobaczyłem obraz siebie sprzed lat... ; )
Zastanawiałem się: "Jak się robi te internety?". Rozmyślałem - jak zabrać się do serwisu? Jakiego języka użyć? Jak to wszystko działa? Jak to się robi? Później gdy już nabrałem pojęcia, wtedy zastanawiałem się jak pisać te aplikacje - liznąłem jako tako kilka języków, wiedziałem co to zmienna, jak robi się pętle, wiedzy z czasem przybywało, a pytań ubywało. ; )
Powiem Ci jedno - musisz dużo czytać i dużo eksperymentować.
Zacznij już teraz. Eksperymentuj, napisz swój system i poprawiaj go. Tylko wtedy dowiesz się jakie zmiany są dobre, a jakie złe.
Poczytaj o zdrowych zasadach programowania, tj. Object Oriented Design i Object Oriented Analysis. Tam jest zawarta wiedza której poszukujesz.
I pamiętaj - kod staraj się pisać w taki sposób, aby łatwo można było go zmodyfikować. To jest cel nr 1 programisty. Jedyna stała w programowaniu to "zmiany". Poczytaj o dobrych zasadach "SOLID".
Jeśli przerobisz te tematy, wtedy będziesz wiedział jak podejść do programowania i nie będziesz szukał "złotej odpowiedzi". Po prostu pamiętaj - tutaj chodzi o to, aby Twój kod trzymał się pewnych zasad. Na koniec doda jeszcze znane powiedzenie, że jeśli dasz 10-ciu doświadczonym programistom jakiś problem do rozwiązania, to otrzymasz 10 rozwiązań - i każde z nich będzie inne i porównywalnie dobre... Niech Ci to da do myślenia. ; )
Poczytaj więc o "SOLID", Object Oriented Design i Object Oriented Analysis. Za dużo musielibyśmy Ci tłumaczyć, abyś zrozumiał jak zabierać się do programowania, bo ten temat jest szeroki i głęboki.
Powodzenia w świecie, gdzie nie ma idealnej odpowiedzi - Welcome, young programmer! ; )
Cytat(Boshi @ 14.11.2014, 21:34:46 )

Myslałem nad 4 tabelami w MYSQl- Dyrektor, Nauczyciel, Uczeń, Uprawnienia. Choć podejrzewam, że rozbicie tego nie ma sensu.
Nie, 4 tabele to złe rozwiązanie.
Zrób jedną tabelę "users", tylko niech użytkownicy mają swoje role i uprawnienia (polecam temat ACL).