Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wydajność
angerthor
post
Post #1





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 13.02.2006
Skąd: Warszawa

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


Witam,

Jestem bardziej programistą Javy, jak PHP, dlatego nie jest pewien jaki sposób pisania kodu jest najbardziej wydajny.

Załóżmy, że mam obiekt komentarz, który w konstruktorze łączy się z bazą danych i pobiera z niej wszystkie wartości odnośnie danego komentarza, typu np. id_komentarz, tresc, autor no i id_artykul, czy id artykulu w bazie do którgo komentarz się odnosi.

I teraz, aby wydajnie pobierać dalsze informację odnośnie tego artykułu z poziomu klasy komentarz, mam jako pole pustą zmienną, która jest inicjalizowana raz, kiedy na obiekcie pola komentarz wywoła się metoda chcąca pobrać dodatkowe info odnośnie komentarza, np. getArticleTitle();. Inicjalizacja czyli wywołanie konstruktora z parametrem id, który łączy się z bazą danych i pobiera dane artykułu.

Zastanawiam się tylko, czy to jest dobre rozwiązanie pod względem wydajności i bezpieczeństwa.

Dzięki za wszelkie opinie
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dr4ko
post
Post #2





Grupa: Zarejestrowani
Postów: 49
Pomógł: 4
Dołączył: 16.07.2008
Skąd: Gdańsk

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


Tak naprawdę, to "optymalność" rozwiązania zależy tylko i wyłącznie od potrzeb. Bo optymalnie, pod kątem ewentualnych statystyk/rankingów, byłoby stworzenie oddzielnej tabeli z kolumnami o przykładowych nazwach: user_id, points_count, action_type gdzie action_type to typ zdarzenia, za które przyznano punkty. W ten sposób można pobrać nie tylko sumaryczną ilość punktów danego użytkownika ale też ilość punktów za daną aktywność. No ale chyba trochę odbiegłem od tematu.

Cytat
Najprostszym rozwiązaniem byłoby utworzenie obiektów wszystkich użytkowników ( w konstruktorze są obliczane punkty) i sprawdzenie który ma najwięcej.


Pod żadnym pozorem tego nie rób. Za pomocą jednego zapytania sql jesteś w stanie znaleźć id użytkownika z największą ilością punktów i tylko dla niego potem utworzyć obiekt.
Go to the top of the page
+Quote Post

Posty w temacie


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: 16.10.2025 - 20:58