![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 197 Pomógł: 24 Dołączył: 22.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Przede wszystkim zacznę od tego, że mam świadomość istnienia darmowych skryptów forum (IMG:style_emoticons/default/tongue.gif) piszę sobie go w celach edukacyjnych plus zaliczenie przedmiotu (IMG:style_emoticons/default/tongue.gif)
Mam trzy tabele: user, forum, forum_posty. To co nas interesuje z user, to tylko imie i nazwisko. Tabela forum zawiera nazwy tematów, datę założenia, id, autora oraz czy temat jest widoczny. Tabela forum_posty zawiera id posta, id tematu, autora, treść, datę i czy jest widoczny. Problem: Chcę wyświetlić listę tematów wg najnowszych postów, wraz z datą ostatniego i liczbą postów z tematu. Urodziłem takie zapytanie:
Zapytanie daje oczekiwany rezultat. Jednak trochę martwi mnie to, że są tutaj aż trzy zapytania. Oczywiście na ten projekt to nie problem, w sumie nie wiadomo, czy kiedykolwiek będę musiał przejmować się wydajnością, jednak zawsze warto takie rzeczy wiedzieć (IMG:style_emoticons/default/wink.gif) Zatem jak można zrobić to wydajniej? Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
rekord z tematem powinien jeszcze zawierać pole z id ostatniego posta oraz pole z liczbą postów. Wówcza unikniesz masy mulastych zapytan
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 197 Pomógł: 24 Dołączył: 22.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
No tak, to oczywiste, nawet miałem zamiar dodać właśnie po prostu liczbę postów + datę ostatniego posta w tabeli z tematami, ale za to kosztem sprawdzania wszystkiego przy dodawaniu / usuwaniu postów. (np usuwając 13 post z 10 tematu trzeba byłoby sprawdzić, czy to ostatni post, pomniejszyć liczbę postów w temacie, cofnąć datę ostatniego posta do 'przedostatniego'..)
Czy to jednak jedyne rozwiązanie? |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat p usuwając 13 post z 10 tematu trzeba byłoby sprawdzić, czy to ostatni post, pomniejszyć liczbę postów w temacie, cofnąć datę ostatniego posta do 'przedostatniego'. Ale kombinujesz... po prostu ustaw na nowo ostatni post, nawet jak ten usuwany nie jest ostatnim. Cytat Czy to jednak jedyne rozwiązanie? Najoptymalniejsze.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 00:02 |