Temat: Globalne prywatne wiadomosci

Hej,

mam w serwisie prosta funkcjonalnosc prywatnych wiadomosci, opartych o taka strukture tabeli:

Messages
--------
id
sender_id
reveiver_id
subject
body
deleted_by_sender
deleted_by_receiver
...

Chcialbym zrobic cos takiego, aby admin mogl puscic wiadomosc do wszystkich uzytkownikow jednoczesnie (taka wiadomosc systemowa) i aby ona pojawila sie userom w skrzynce jak kazda inna wiadomosc. Jak byscie do tego podeszli?

Pozdrawiam

konto usunięte

Temat: Globalne prywatne wiadomosci

Tomek Wieczorek:
Hej,

mam w serwisie prosta funkcjonalnosc prywatnych wiadomosci, opartych o taka strukture tabeli:

Messages
--------
id
sender_id
reveiver_id
subject
body
deleted_by_sender
deleted_by_receiver
...

Chcialbym zrobic cos takiego, aby admin mogl puscic wiadomosc do wszystkich uzytkownikow jednoczesnie (taka wiadomosc systemowa) i aby ona pojawila sie userom w skrzynce jak kazda inna wiadomosc. Jak byscie do tego podeszli?

Pozdrawiam

Najprościej wrzucić wiadomość dla każdego użytkownika, jeden prosty insert powinien to załatwić. Wtedy każdy użytkownik będzie mógł sobie to spokojnie obsłużyć jak każdą inną wiadomość.
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: Globalne prywatne wiadomosci

Zrób dodatkową tabelę na wiadomości od admina oraz tabelę określającą które wiadomości od admina zostały pobrane przez danego usera (msg_admin.id, user.id) lub (msg_admin.id, user.id, Messages.id). Przy logowaniu (lub jakiejś innej aktywności) użytkownika skrypt pobierze nowe wiadomości od admina, skopiuje do tabeli messages i oznaczy w tej dodatkowej tabeli. Tylko aktywni użytkownicy dostaną wiadomość.

Temat: Globalne prywatne wiadomosci

Janusz Skudrzyk:
Zrób dodatkową tabelę na wiadomości od admina oraz tabelę określającą które wiadomości od admina zostały pobrane przez danego usera (msg_admin.id, user.id) lub (msg_admin.id, user.id, Messages.id). Przy logowaniu (lub jakiejś innej aktywności) użytkownika skrypt pobierze nowe wiadomości od admina, skopiuje do tabeli messages i oznaczy w tej dodatkowej tabeli. Tylko aktywni użytkownicy dostaną wiadomość.

Kurcze, to jest dobre - dzieki - zrobie tak :)
Michał Jarosz

Michał Jarosz Frontend Developer &
Team Leader

Temat: Globalne prywatne wiadomosci

A co w sytuacji użytkowników, którzy się nie zalogują, ale mają na przykład ustawione powiadamianie o PW na email? W takim wypadku powiadomienia nie dostaną.
Marcin Lenkowski

Marcin Lenkowski Szukasz
programistów?
Zapraszamy do
Exulto!

Temat: Globalne prywatne wiadomosci

Ja proponuję dać możliwość ustawienia reveiver_id na 0. Każdy użytkownik odbierałby wiadomości o reveiver_id swoim i 0. Zerowego jednocześnie nie można by było tak prosto usunąć, ale za to można zrobić dodatkową bazę w której przechowywać będziesz informacje o usuniętych wiadomościach (tak by się już nie pokazywały). Trochę złożone zapytanie, ale nie musisz tego robić jako jedną całość.
Marcin Witek

Marcin Witek isido.pl ułatwia
pracę - polski sytem
zarządzania
projekt...

Temat: Globalne prywatne wiadomosci

Jeśli ma być w miarę porządnie, to w tym kierunku, w którym radzi radzi Janusz.

Jeżeli ma być szybko i nieporządnie, to np. ustawić receiver_id na jakąś stałą (np. -1), dopisać jeden warunek w zapytaniu pobierającym wiadomości dla usera (where receiver_id = zalogowany_user_id OR receiver_id = -1) i po sprawie (jeśli Admin jest zwykłym userem).

Do tego trzeba jakoś reagować na usuwanie wiadomości (szybko i nieporządnie - nie pozwalać usuwać wiadomości od admina).

--
edit: o proszę, nie ja jeden tak bym na to spojrzał ;)Marcin Witek edytował(a) ten post dnia 18.11.09 o godzinie 23:18

Następna dyskusja:

zmienne globalne




Wyślij zaproszenie do