Gorąco polecam to podejście. Ponieważ prawdopodobnie używasz tej samej bazy danych dla OLTP i OLAP, możesz uzyskać znaczne korzyści w zakresie wydajności, dodając kilka gwiazdek i płatków śniegu.
Mam aplikację społecznościową, która jest obecnie przy 65 stołach. Utrzymuję jedną tabelę do śledzenia widoków obiektów (blog/post, forum/wątek, galeria/album/zdjęcie itp.), inną dla rekomendacji obiektów i trzecią tabelę podsumowującą aktywność wstawiania/aktualizacji w kilkunastu innych tabelach.
Jedną rzeczą, którą robię nieco inaczej, jest utrzymanie tabeli entity_type i użycie jej identyfikatora w kolumnie object_type (w twoim przypadku kolumny „TABLE”). Chciałbyś zrobić to samo z tabelą event_type.
Wyjaśnienie dla Alix - Tak, utrzymujesz tabelę referencyjną dla obiektów i tabelę referencyjną dla zdarzeń (to byłyby Twoje tabele wymiarów). Twoja tabela faktów miałaby następujące pola:
id
object_id
event_id
event_time
ip_address