![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: 22.02.2011 Skąd: Sierpc Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam swój sposób na nieprzeczytane posty, działa on w następujący sposób: Jak użytkownik napisze post, odczytuję wszystkich użytkowników bez tego co napisał i zapisuję w bazie danych user_id (wszystkich użytkowników po kolei) i post_id (identyfikator postu). Zastanawiam się, czy nie lepiej by było na odwrót. Użytkownik wchodząc w temat zapisuje dane do bazy danych o przeczytanych postach z danej strony tematu. Martwię się, że obecna metoda może stwarzać problemy przy dużej ilości użytkowników np. długi czas zapytania podczas pisania postu, czy dużą ilość zajmowanej pamięci. Czekam na podpowiedzi. Pozdrawiam! |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 14 Dołączył: 25.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Najlepiej będzie, jeśli w jednej tabeli będziesz miał artykuły wraz z ID (i co tam jeszcze chcesz), a w drugiej tabeli będzie pojawiać się informacja o ID artykuły wraz z użytkownikiem, który go przeczytał. Potem połacz te tabele za pomocą LEFT JOIN i dodaj odpowiednie warunki.
Zupełnie bez sensu jest dodawania za każdym razem wpisu dla każdego użytkownika. To zbyt obciąża serwer.
Powyżwszy skrypt wybierze wszystkie artykuły i doda do nich z tabeli przeczytane kolumnę status dla wybranego użytkownika. Wspólnym elementem tych tabeli są pola id i artykulid. Jeśli użytkownik nie przeczytał jeszcze jakiegoś artykułu, w tabeli przeczytane nie ma rekordu, dlatego kolumna status będzie miała wartość NULL. Ten post edytował lukesh 26.11.2011, 17:57:47 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 06:45 |