Cóż, nie jest całkowicie niemożliwe powiadamianie klientów o zmianach dokonanych w bazie danych, chociaż nie ma na to wbudowanego rozwiązania.
W mysql możesz tworzyć skompilowane funkcje zdefiniowane przez użytkownika (UDF) w C/C++. Mogą one rozszerzyć funkcjonalność mysql w dowolny sposób - na przykład wysyłanie wiadomości przez sieć. Możesz stworzyć własny UDF lub skorzystać z bibliotek dostępnych na mysqludf.org do wysyłania wiadomości przez sieć. Możesz zacząć od użycia biblioteki STOMP na mysqludf.org do wysłania STOMP wiadomości. Ponieważ STOMP jest niezależny od języka, można go używać również ze środowiska .NET, patrz ten temat SO (jeśli wyszukasz w Internecie serwer .net STOMP, znajdziesz więcej przykładów).
Aplikacja kliencka musi zaimplementować serwer STOMP, który jest w stanie odbierać komunikaty STOMP z serwera.
W bazie danych musisz utworzyć tabelę subskrypcji, która będzie zawierała informacje o tym, który klient subskrybuje, jakie powiadomienia i jak się z nim połączyć (co najmniej adres IP / nazwa hosta i numer portu).
Musisz także utworzyć wyzwalacze dla wszystkich tabel i zdarzeń, o których chcesz wysyłać powiadomienia.
Stworzyłbym również procedurę składowaną lub funkcję, która odbiera zmodyfikowane dane lub fakt, że pewna tabela została zmieniona z wyzwalaczy, sprawdza tabelę subskrypcji, tworzy komunikat STOMP, a następnie wywołuje skompilowany UDF, który wysyła komunikat STOMP do wszystkich subskrybowanych klientów. Wyzwalacze wywołałyby tę procedurę składowaną lub funkcję zamiast implementować wszystkie te funkcje w każdym z wyzwalaczy.
Klienci muszą zostać zmodyfikowani, aby przetwarzać powiadomienia i podejmować dalsze działania lub monitować użytkownika.
Zastrzeżenie:Nie twierdzę, że jest to najbardziej adekwatne i skalowalne rozwiązanie w Twoim konkretnym przypadku. Jednak w ten sposób możesz samodzielnie wdrożyć system powiadomień, unikając konieczności odpytywania bazy danych.