Pisze system powiadomień i napotykam problem z pewną relacją. Mianowicie mam takie tabele:

  1. notification_map // przypisywanie powiadomień do użytkownika

  2. notifcation_meta // podstawowe i identyczne dane dla każdego powiadomienia/eventu czyli czas dodania, status, rodzaj powiadomienia itp..

  3. notification_ [ ... ] // to są tabele z informacji specyficznymi dla danego typu powiadomień. Czyli np.: powiadomienie o zawarciu znajomości, czy dodanie nowego postu.

Nie jestem specjalistą od baz danych, jestem kimś kto sam się uczy i wiem że to może nie jest rewealcyjne rozwiąznie, ale chciałbym w jakiś przyzowity sposób pobierać te powiadomienia. Tzn.. bez spadku wydajności systemu.

Szkic zapytania SQL:

  1. Filtruje powiadomienia w notification_map dla danego użytkownika i pobieram id rekordu dla danego powiadomienia w notification_meta
  2. Z notification_meta pobieram datę, status i rodzaj. Na podstawie rodzaju chcę odwołać się do jednej z tabel notifiaction_ [...], która zawiera szczegółowe dane dot. powiadomienia.
  3. Pobieram dane z tej tabeli.

Potrafie napisać działającą wersje tego zapytania z case ale przy rozbudowie systemu zdaje sobie sprawę, że kiedy będę dodawał nową kategorie, będe musiał edytować zapytania.
I tu moje pytanie jak rozwiązać tego typu problem. Ewentualnie jakby ktoś powiadał sprawdzony system powiadomień (chodzi mi o kształt ogólny tabel), bo ten powyższy to suma moich poszukiwań po stackoverflow.