![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 25.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam malutki problem, chciałbym pobrać z kolumny np. 10 rekordów najczęściej powtarzających się. W kolumnie zapisywany jest id artykułu. Będę próbował napisać skrypt, który wyświetli najczęściej komentowane artykuły. Panowie, dobrze zaczynam kombinować ? (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]() |
![]()
Post
#2
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Cytat Panowie, dobrze zaczynam kombinować ? Źle. W tabeli z artykułami dajesz kolumne 'komentarze', którą inkrementujesz po każdym dodanym komentarzu (dla odpowiedniego artykułu). Potem wystarczy tylko:
Twój sposób spwodowałby, że za każdym razem musiałbyś bawic się w grupowanie w tabeli z komentarzami po ID artykułu, którego dotyczą, potem JOIN-owanie danych z tabeli 'artykuły' po tym ID i podobne rzeźby. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Cytat W tabeli z artykułami dajesz kolumne 'komentarze', którą inkrementujesz po każdym dodanym komentarzu (dla odpowiedniego artykułu). Źle. Tworzysz osobną tabelę dla komentarzy artykułów. Count na id komentarzy dla danego id artykułu i tak jak wyżej orderby na tego counta i limit. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 9 Dołączył: 19.11.2004 Skąd: Iława Ostrzeżenie: (0%) ![]() ![]() |
Tworzysz osobną tabelę dla komentarzy artykułów. Count na id komentarzy dla danego id artykułu i tak jak wyżej orderby na tego counta i limit. Czyli powtorzyles dokladnie to, co napisal blooregard w ostatniej linijce, tylko że... Dobrze. Jeśli tworzysz bloga, którego dziennie odwiedzisz Ty i dwóch znajomych. Źle. Jeśli tworzysz strone, która będzie miała do czynienia ze sporym obciążeniem (zarówno wyświetlenia jak i ilość zgromadzonych danych). Wtedy rozwiązanie blooregard'a jest o wiele lepsze. Ten post edytował VGT 2.02.2010, 16:41:29 |
|
|
![]()
Post
#6
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Cytat @cojack: Źle. Tworzysz osobną tabelę dla komentarzy artykułów. Count na id komentarzy dla danego id artykułu i tak jak wyżej orderby na tego counta i limit. Taa, jasne. Ja CELOWO pominąłem dywagacje na temat tabeli na komentarze, bo nie o nią tu chodziło, tylko o sposób, w jaki uzyskać 10 artów najczęściej komentowanych, a rozwiązanie z dodatkowym polem w tabeli z artykułami inkrementowanym po każdym dodaniu/dekrementowanym po każdym usunięciu komentarza jest jedynym, które eliminuje konieczność używania COUNT, GROUP BY i innych f-cji. Wiadomo, że musi być tabela, aby było gdzie te komentarze przechowywać i innego sposobu sobie nie wyobrażam, jak tylko utworzyć osobną tabele w tym celu. A jedna operacja UPDATE przy dodaniu/usunięciu komentarza jest niczym w porównaniu z każdorazowym COUNT + GROUP BY przy wchodzeniu odwiedzających na stronę zawierającą takie zestawienie 10-ciu najczęściej komentowanych. Generalnie nie będe tu przecież przedstawiał całej struktury bazy danych, bo musiałbym też napisac o tabeli 'users'; przechowującej dane użytkowników, tabeli 'user_to_komentarz' tworzącej relację wskazującą, kto który komentarz dodał, tabeli 'logs' zapisującej kto, z jakiego IP i kiedy ten komentarz dodał, tabeli 'history_details', w której zapisywane byłyby wszystkie zmiany w komentarzach edytowanych przez adminów/modów wraz z ID komentarza, data i czasem dokonanej zmiany, treścią sprzed edycji..... mam wymieniac dalej? Ten post edytował blooregard 2.02.2010, 16:56:13 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 15:18 |