Я работаю на веб-сайте сообщества литературы. (screenshot) И я пытаюсь выяснить, как уведомлять пользователей, когда кто-то комментирует что-то, что они отправили на сайт, когда кто-то смотрит подает новый литературный фрагмент и т.д.
Я пытаюсь выяснить, как структурировать базу данных для хранения этой информации. Я придумал две возможные идеи.
-
Сохраните ссылку на подлежащий уведомлению объект, поле, описывающее тип действия (новое, обновление и т.д.), о котором уведомляется пользователь. Это делает сложный код отображения, но это означает, что я могу изменить, как уведомления работают довольно легко. Это также увеличивает данные, которые мне нужно вытащить из базы данных, если я не использую поле кеша для сброса хэша соответствующих атрибутов в таблицу.
- notifiable_type
- notifiable_id
- user_id
- действие
- notifiable_cache (необязательно, сохраняет хеш выбранных атрибутов из объекта, подлежащего уведомлению)
-
Относитесь к уведомлениям, таким как электронная почта, и просто сохраняйте их в базе данных с темой и сообщением. Это приводит к простому представлению, но сложной модели и не позволяет мне легко изменять работу уведомлений.
- user_id
- название
- сообщение
Я ищу другие идеи и комментарии по двум перечисленным выше.