Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem Rozwiazan
Forum PHP.pl > Forum > Przedszkole
wojto
W zwiazku z moim aktualnie wykonywanym projektem sklepu mam kilka mniej lub bardziej waznych pytan, aby nie zakladac wielu tematow zebralem je w jednym miejscu.
Po kazdym pytaniu napisalem moje spostrzezenia, co do

1. Mam w skrypcie system cachowania wybranych zapytan do bazy MySQL. I teraz moje pytanie, czy optymalnym rozwiazaniem jest cachowanie zapytan o kazdy produkt? jest to jedno polecenie mysqla, wybierajace dane z jednej tabeli (dodam jeszcze, ze zcachowane dane sa przetrzymywane w plikach w postaci zserializowanej, co przyspiesza ich odczytywanie).
Napewno cachowanie skroci czas wykonywania skryptu, ale niestety zwiekszy sie zapotrzebowanie na miejsce na serwerze, bo skrypt bedzie obslugiwal powiedzmy kilkadziesiat tysiecy produktow (przyjmijmy 50 000 produktow), a co za tym idzie, miejsca bedzie potrzeba 1,5 kB (srednia na produkt) * 50000 = 75 MB. Ale z drugiej strony kazdy produkt w danej chwili moze ogladac wiel osob (ogladalnosc tez jest duza przewidziana), wiec ich dostep do danego produktu byl by szybszy.
Zatem, czy oplaca sie cachowac zapytania o kazdy produkt? Ja obecnie cachuje te zapytania, ale chetnie uslysze wasze sugestie, pewnie macie wieksze doswiadczenia zwiazane z duzymi sklepami niz ja.

2. Gdzies ktos (chyba Hawk, ale moge sie mylic :/) cos wspomnial o nagminnym uzywaniu klas (konkretnie o klasie timer i error), sklonilo mnie to do pewnych rozwazan. Mi sie wydaje podobnie, ze klasy timer nie potrzeba, dyz mialem tam tylko dwie metody: start i stop, i byly one wykorzystywane tylko w jednym miejscu skryptu, wiec po co od razu klasa. Wiaze sie ta pewnie z istata stosowania OOP, zeby wszystko bylo w klasach, ale moj skrypt tylko korzysta z klas, a nie jest na nich calkowicie oparty.
Podobnie sie przedstawia problem z klasa error, tutaj autor wspomnial o tym, ze jest tego wykonywana tylko jedna instancja, wiec po co tez tworzyc cala klase? I co moze byc ponadto w tej klasie, poza metoda odpowiedzialna za wyswietlenie bledu? Sorki, ale klas rzadko uzywalem i mam male zaleglosci smile.gif

3. Pytanie odnosnie klasy auth. Mam tam metody inicjalizujaca, ktora sprawdza sesje itp. i nastepnie ustawia odpowiednie zmienne klasy. Druga funkcja odpowiada za sprawdzenie, czy aktualny uzytkownik ma prawa do "zarzadzania" danym modulem. Jakie jeszcze moga byc metody w tej klasie? Widzialem w innych przyklada klas z innych skryptow, ze byly tam metody odpowiedzialne za logowanie i wylogowywanie uzytkownikow, ale nie wiem, czy to jest konieczne (czytaj optymalne), skoro kazda z tych metod jest wykonywana tylko raz w calym skrypcie, tj. w pliku loguj.html i wyloguj.html.

4. Mam pytanie, czy ustawienia strony, typu: adres_strony, tytul_strony, ilosc_produktow_na_strone, domyslna_skorka, domyslny_jezyk, format_daty przechowywac w bazie danych, czy w plikach tekstowych, jako define('format_daty', 'd-m-Y') itp. ?
Ja sie raczej sklaniam do tego pierwszego, gdyz nawet takie zapytanie mozna scachowac, wiec bedzie szybciej pobierane. Ponadto dane w bazie latwiej edytowac, a nie otwierac plik i recznie zmieniac, lub meczys sie ze skryptem w wycinanie itp.
Ostatni wlasnie widzialem kilka skryptow, gdzie ustawianie byly wlasnie w plikach, i tak mnie to sklonilo do zastanowienia, ale jednak chyba pzostane za baza?
A moze dane przetrzymywac w xml'u winksmiley.jpg

Za wszelkie sugestie z gory dziekuje smile.gif
Dabroz
Ale bałagan w tych pytaniach smile.gif Ale postaram się na miarę swoich doświadczeń pomóc. winksmiley.jpg

1) To czy powinieneś używać cache'owania zależy od parametrów serwera - może okazać się, że różnica w prędkości działania jest znikoma, a pliki cache zajmują wiele miejsca. Najlepiej zrób duży test, z użyciem kilku tysięcy próbek danych.

2) Oczywiście że najlepiej jest napisać cały kod za pomocą OO winksmiley.jpg Co do klasy error, to powinna zawierać ona wszystkie niezbędne mechanizmy do debuggowania: najlepiej aby obsługiwała błędy krytyczne i ostrzeżenia, najlepiej z podziałem na błędy kodu, logistyczne, run-time, SQL itd...

3) Funkcjonalność klasy autoryzacyjnej raczej powinna mieć składnik logowania i wylogowania, po prostu w plikach login/out trzebaby użyć tej metody.

4) Oczywiście że lepiej trzymać dane w bazie danych, po prostu aby zachować konsekwencję nie używania plików tekstowych.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.