@evomed

Как сделать модерацию моделей?

Задача написать модерацию для моделей. Модели должны получить
status_id
mod_at
reason_id
comment

Есть 2 варианта:

1. Добавляем
status_id
mod_at
во все модели, которые нужно модерировать.

Все остальные данные по модерации в полиморфной таблице moderatable.

2. Создаем полиморфную таблицу moderatable и там все поля
moderatable_id
moderatable_type
status_id
mod_at
reason_id
comment

Для каждой модерируемой модели создавать обязательную запись в этой таблице.

Плюсы 1:
a) не нужно для каждой модерируемой модели создавать обязательные записи moderatable т.к. для approved моделей (которых большинство) не нужны причины и комментарии.
б) не нужно лезть в полиморфную таблицу, чтобы узнать статус модерации т.к. статус хранится в модели.
Минусы 1:
В каждую модерируемую модель придется добавлять поля
status_id
mod_at
Т.е. получается дублирование данных.

Плюсы 2:
Не нужно дублировать данные и добавлять в каждую модель поля
status_id
mod_at
Минусы 2:
Большое количество записей в moderatable т.к. она будет 100% дублировать все записи модерируемых моделей.
Нужно делать дополнительный запрос, чтобы узнать статус модерации.

Что лучше выбрать?
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы