Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 3 Dołączył: 5.06.2011 Ostrzeżenie: (0%)
|
Witam. Przede mną stoi ciężkie zadanie, a mianowicie zrobienie dosyć zagmatwanego systemu wiadomości. Najtrudniejszą rzeczą jest zrobienie wiadomości do więcej niż jednej osoby, za pomocą wyboru kryteriów(wiek, płeć itd.)
Może zacznę od tego co mam zrobione: - pola w tabeli: sender_id, receiver_id, owner, readed, readed_time - wysyłanie wiadomości: generuje 2 rekordy:
- czytanie wiadomości: jeżeli wiadomość jest nieprzeczytana (readed=0) to aktualizuje czas przeczytania na aktualny (readed_time=NOW()) - pokazywanie liczby nieprzeczytanych wiadomosci bez wchodzenia w zakładke: liczy liczbę wiadomości których jeszcze użytkownik nie przeczytał i są w jego skrzynce odbiorczej (readed=0 AND receiver_id=$id) ### Wszystko działa sprawnie i tak jak należy, lecz zleceniodawca ostatnio zlecił mi wdrożenie wiadomości do wszystkich. Przemyślałem to i postąpiłem tak: - Nie mogę dla każdego użytkownika przydzielać rekordu, gdyż dla 1000 użytkowników będzie to 1000 rekordów i bezsensowne kopiowanie tej samej treści. Dlatego też dla wiadomości dla wszystkich generuję taki rekord:
I teraz problemy: 1. W pokazywaniu liczby wiadomości nie ma uwzględnionej wiadomości dla wszystkich, gdyż nie jest zapisywane kto ją przeczytał a kto nie. Myślałem, aby rozwiązać to za pomocą zapisywania najnowszej przeczytanej wiadomości dla wszystkich i wtedy by sobie przeliczało. Wiąże się to z koniecznością NIE usuwania wiadomości dla wszystkich, gdyż zliczanie by się zepsuło, więc trzeba było by wprowadzić pole 'enabled'. Czy jest to dobre rozwiązanie? Ew. jak inaczej to zrobić? 2. Za jakiś czas będę musiał do wysyłania do wszystkich wdrożyć kryteria. Myślałem nad drugą tabelą, choć jeszcze do końca nie wiem w jakiej formie miałbym zapisywać kryteria. Macie jakiś pomysł? Mam nadzieję że zrozumieliście o co mi chodzi i pomożecie mi z tymi problemami. W razie czegoś proszę pytać, a ja dokładniej wytłumaczę co miałem na myśli. Ten post edytował koxu1996 14.10.2013, 08:06:54 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%)
|
Co do samego mechanizmu wiadomości, wystarczyło dodać dwie kolumny z flagami statusu wiadomości dla odbiorcy i nadwacy, w tedy byś zmieścił je w jednym rekordzie. Przy usuwaniu po prostu zmieniasz status. Jeśli oba statusy informują, że wiadomość została usunięta to usuwasz rekord i po sprawie.
Co do samego mechanizmu na Twoim miejscu wysyłał bym wiadomości na takiej samej zasadzie jak teraz. Dodanie wpisu dla admina jest zbędne. Dodanie dodatkowej tabeli może i zaoszczędzi wpisów, ale tylko pozornie. Musisz gdzieś trzymać identyfikatory, użytkowników, którzy przeczytali bądź nie przeczytali wiadomości. Po drugie, jeśli usuniesz wiadomość z panelu admina (zakładam, że jest taka możliwość) - użytkownik później już jej nie odczyta. |
|
|
|
koxu1996 Zaawansowany mechanizm wiadomości 14.10.2013, 08:03:30 
koxu1996 Cytat(freemp3 @ 14.10.2013, 09:29:32 ... 14.10.2013, 09:43:28
freemp3 Napisałem, że kolumny z flagami dotyczą mechanizmu... 14.10.2013, 10:02:55
koxu1996 Dobry pomysł z tymi flagami, tak przerobię system.... 14.10.2013, 13:01:31
freemp3 Po co chcesz wstawiać kryteria? Podczas tworzenia ... 14.10.2013, 13:17:00
koxu1996 Racja Nie pomyślałem o tym, dlatego też założyłem... 14.10.2013, 13:34:37 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 21:23 |