adami
3.09.2013, 09:34:27
mam crm własnej produkcji. mam w nim uzytkowników ze statusami np.: 1=aktywny, 2 = nieaktywny
chcę napisać jakieś proste narzędzie do wyświetlania dla uzytkowników komunikatów od admina. po zalogowaniu użytkownika, wyskakuje mu okienko z informacją np. "1 nowa wiadomość od admina" + treść + kliknij "potwierdzam, że przeczytałęm i rozumiem". potwierdzenia odkłądają się w bazie.
przychodzi mi do głowy rozwiązanie - ale bardzo toporne i z dużą ilością zapytań... może ktoś będzie miał pomysł na lepsze?
mój pomysł:
1. tabela "komunikaty": id_komunikaty, news_title, news_content, timestamp_created
2. tabela "komunikaty_log": id_komunikaty, id_user, status (0 niepotwierdzony, 1 potwierdzony), timestamp_update
skrypt:
- dla wszystkich komunikatów sprawdza, które są potiwredzone dla danego uzytkownika - te niepotwierdzone wyświetla jako "potwierdź", nowe potwierdzenia zapisuje do "komunikaty_log"
wady:
- aby komunikaty wyskakiwały na bieżąco, myszę uruchamiać skrypt przy każdym przeładowaniu strony
- gdy za miesiąc dodam nowego użytkownika - wyświetlą mu się wszystkie stare komunikaty
- w sumie: dużo zapytań i wykonywania skryptów jak na tak prostą funckjonalność....
Czy ktoś może będzie miał na to lepszy pomysł?
buliq
3.09.2013, 09:45:12
Cytat
gdy za miesiąc dodam nowego użytkownika - wyświetlą mu się wszystkie stare komunikaty

jak

Nie ma innej możliwości, jeżeli chcesz zachować "szablony" (które możesz też trzymać w plikach)
Z tabeli "log" będziesz pobierać tylko dla określonego usera komunikaty.
Możesz też w tabelu "uzytkowników" dodać kolumnę "komunikaty_cache" i jeżeli wartość tej kolumny jest inna od 0 to wykonuje dodatkowe zapytanie do "komunikatów". Jak nie ma komunikatów do wyświetlenia to update dla tej kolumny.
adami
3.09.2013, 10:01:43
nie bardzo rozumiem ideę kolumny "komunikaty_cache". możesz bardziej łopatologicznie?
buliq
3.09.2013, 10:28:43
jeżeli boisz się ilości zapytań, to w tabeli użytkownika dodajesz tą właśnie kolumnę. Tabelę userów i tak odpytujesz, pobranie nowej kolumny nie stanowi problemu.
W momencie dodawania komunikatu do usera, ustawiasz wartość kolumny komunikat_cache na 1 lub inna wartość różną od 0.
W momencie ustawiania, ze usera akceptuje i nie ma już więcej komunikatów do akceptacji ustawiasz cache na 0
sprawdzasz wartość cache i jeżeli równe od 0 to wykonujesz zapytanie pobierające komunikaty.
Nie wiem czy jest sens bronić się przed tym zapytaniem przy każdym uruchomieniu skryptu.