Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Bez użycia bazy => wszystko w pamięci [plan lekcji], Czy takie podejście ma sens? (wolno chodzi)
Blackhole
post 27.08.2014, 11:15:20
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


Witam.
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. ohno-smiley.gif
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ę)


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
Turson
post 27.08.2014, 11:21:31
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Tabela z 3800 rekordami to byłby pikuś wink.gif Zapchałeś sesję.
Go to the top of the page
+Quote Post
nospor
post 27.08.2014, 11:24:01
Post #3





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




Tak z czystej ciekawosci: a gdzie ty te dane przechowujesz? Bo chyba nie trzymasz tego ciągle w sesji...
No i czemu tworzysz te 5-cio minutówki? Czemu to ma sluzyc?
No i czemu jak czlowiek nie zrobiles tego na bazie?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Blackhole
post 27.08.2014, 11:37:56
Post #4





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


nospor, właśnie ciągle w sesji trzymam. Nie wiedziałem, że będą z tym problemy. Na bazie nie zrobiłem, bo nie wydawała mi się potrzebna. 5-minutówki tworzę, bo myślałem, że łatwiej później będzie operować na tych jednostkach czasu.
Da się jakoś "odetkać" tę sesję bez radykalnych zmian całości?


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
nospor
post 27.08.2014, 11:40:04
Post #5





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




Przeciez sesja to magazyn tymczasowy.... Jakim cudem piszesz aplikacje opierając sie tylko na sesji? Ktos wyłączy kompa, padnie prad, padnie sprzęt, cokolwiek sie stanie a ty natychmiast tracisz te dane...
Na dodatek sesja dotyczy tylko i wylacznie danego uzytkownika... Nie jestes w stanie na roznych kompach operowac na tych samych danych.

Podsumowując: sesja to poroniony pomysl. Zrob to jeszcze raz normalnie jak bozia przykazała, wywal te 5-cio minutowki i ciesz sie zyciem wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Blackhole
post 27.08.2014, 12:44:31
Post #6





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


No to se naważyłem piwa sad.gif Zamiast wcześniej zapytać o radę ohno-smiley.gif
Dzięki za zainteresowanie tematem.


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
Pyton_000
post 27.08.2014, 13:03:23
Post #7





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Hehe tak to już bywa że robi się coś bez przemyślenia, poszukania rady wink.gif A potem człowiek się męczy z potworami haha.gif
Go to the top of the page
+Quote Post
Blackhole
post 28.08.2014, 17:57:56
Post #8





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


Zmieniam więc, by używać bazy. Nasunęło mi się pytanie...
Mam w PHP klasę "nauczyciel", a w bazie listę nauczycieli. Dobrze będzie, jak do bazy odwołam się po tę listę tylko raz, by utworzyć w sesji ARRAY z obiektami nauczycieli i potem już korzystać z tego ARRAY-a? Nie miałoby chyba sensu każdorazowe inicjowanie obiektów nauczycieli przy każdym odświeżeniu strony?

Ten post edytował Blackhole 28.08.2014, 17:58:34


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
nospor
post 28.08.2014, 19:32:34
Post #9





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




A jak ktos doda nauczyciela? Musisz miec mechanizm odswiezania swojej sesji gdy ktos doda, usunie, zmieni.
Poza tym wydaje mi sie, ze ździebko naduzywasz tej sesji.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Blackhole
post 28.08.2014, 19:35:13
Post #10





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


Oczywiście będzie odświeżenie po dodaniu nauczyciela.
Jakbyś więc Ty zrobił, aby sesja nie była nadużywana? Jak pisałem... nie wiem, czy jest sens za każdym odświeżeniem strony odczytywać nauczycieli z bazy i tworzyć ARRAY z obiektami klasy "nauczyciel".

Ten post edytował Blackhole 28.08.2014, 19:36:21


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
nospor
post 28.08.2014, 19:45:23
Post #11





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




A po co w ogole ty to robisz za kazdym razem? Po grzyba po kazdym odswiezeniu strony znac ci liste nauczycieli?
Ja rozumiem, ze ta lista moze byc wymagana na stronie z listą nauczycieli, z planem lekcji wszystkich nauczycieli, ale tak, na kazdej innej stronie lista nauczycieli jest ci do niczego raczej nie potrzebna


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Kalinowcyk
post 2.09.2014, 21:04:42
Post #12





Grupa: Zarejestrowani
Postów: 67
Pomógł: 4
Dołączył: 23.09.2008

Ostrzeżenie: (0%)
-----


Od siebie dodam, że większość stron przy każdym odświeżeniu odczytuje sporo danych z bazy danych i nie ma w tym nic dziwnego. Nie bardzo rozumiem, dlaczego tak bardzo chcesz tego uniknąć, szczególnie, że ilość pobieranych przez Ciebie danych naprawdę nie jest zbyt duża.

Sesja przewidziana jest do przechowywania danych o konkretnym użytkowniku typu jego login (jeśli jest zalogowany) itp. Na pewno nie specjalnie nadaje się do przechowywania całych tabel.

Ten post edytował Kalinowcyk 2.09.2014, 21:05:15


--------------------
Notatnik programisty
Go to the top of the page
+Quote Post
BenekeX2
post 3.09.2014, 10:31:14
Post #13





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 9.09.2011

Ostrzeżenie: (0%)
-----


dokładnie sesja się do tego nie nadaje.
Bazy danych są przeznaczone do tego aby przechowywać w nich dane i wydaje mi się że są dużo bardziej wygodne w użyciu niż pliki i szybsze. O sesji już nie wspomne.

Go to the top of the page
+Quote Post
Blackhole
post 10.09.2014, 16:26:26
Post #14





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


Już prawie przepisałem na bazę danych smile.gif Śmiga "jak szalone" smile.gif Dzięki!


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 16:12