Пробема: События бывают разных типов с разной полезкой инфой по ним VS Хотим общую таблицу событий
Вариант 1. Сделать в таблице кучу колонок, чтобы хватило всем типам событий.
Каждому типу события -- свой набор колонок.
Все колонки будут опциональными, почти все -- пустыми.
Вариант 2. Отказаться от реляции, хранить вариативную часть данных в виде JSON вместо ForeignKey, GenericForeignKey
Вариант 3. В событии сразу хранить готовую к отображению надпись
- Не даст реализовать уведомления
- Мультиязычность невозможно реализовать
- Крайне ограничены возможности UX
- Крайне трудно перерендерить старые HTML
Вариант 4. Multitable Inheritance
- Для каждого типа событий с набором доп.данных -- своя таблица
- Потенциально много запросов к БД для рендера списка
Вариант 5. Агрегировать инфу из нескольких независимых таблиц по дате
Придётся некоторые запросы писать на SQL, чтобы избежать больго количества запросов к БД
Вариант 6. Хранить события не в PostgreSQL, а в Redis, MongoDB, ещё где-то