![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 20:58 |