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
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. (IMG:style_emoticons/default/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ę)
Go to the top of the page
+Quote Post
Turson
post
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ś (IMG:style_emoticons/default/wink.gif) Zapchałeś sesję.
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
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?
Go to the top of the page
+Quote Post
Blackhole
post
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?
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
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 (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Blackhole
post
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 (IMG:style_emoticons/default/sad.gif) Zamiast wcześniej zapytać o radę (IMG:style_emoticons/default/ohno-smiley.gif)
Dzięki za zainteresowanie tematem.
Go to the top of the page
+Quote Post
Pyton_000
post
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 (IMG:style_emoticons/default/wink.gif) A potem człowiek się męczy z potworami (IMG:style_emoticons/default/haha.gif)
Go to the top of the page
+Quote Post
Blackhole
post
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
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
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.
Go to the top of the page
+Quote Post
Blackhole
post
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
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
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
Go to the top of the page
+Quote Post
Kalinowcyk
post
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
Go to the top of the page
+Quote Post
BenekeX2
post
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.

(IMG:http://ray-m.org/dot.png)
Go to the top of the page
+Quote Post
Blackhole
post
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 (IMG:style_emoticons/default/smile.gif) Śmiga "jak szalone" (IMG:style_emoticons/default/smile.gif) Dzięki!
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 15.09.2025 - 11:28