@AlexAll

Как лучше добавлять дату добавления и редактирования в базу из yii2 для скорости, тригером БД или поведением?

В yii2 есть behavior с помощью которого дата добавляется в БД когда сохраняется пост или обновляется.
Но можно использовать тригеры БД mysql ил postgresql для добавления даты в нужные поля при insert или update

Есть ли смысл использовать тригеры и есть ли прирост от этого, а может и наоборот?
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
myks92
@myks92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
Есть ли смысл использовать тригеры и есть ли прирост от этого, а может и наоборот?


Зачем вам логику добавления даты куда-то перемещать?

Если использовать поведения, то есть один из недостатков — у вас сохраняются данные всегда при создании и обновлении.

Например, вы обновили счётчик поросмотров - у вас обновилась дата обновления. Хотя логически она должна изменятся приобновлении какой-то важной информации (контента). Если вы эта дату выводите на страницу, то будут проблемы. Вы обновили только счётчик просмотров контента, но не меняли контент. Такая дата дезинформирует пользователей. При любом просмотре пользователем дата будет обновляться.

Я бы рекомендовал выстраивать логику таким образом, чтобы вы управляли датами на уровне бизнес логики. Если это дата создания, то передаёте дату при создании сущности. Если это дата обновления, то при изменении контента.

Небольшой пример. Есть блог. С полями: заголовок, дата обновления, просмотры. Вы обновляете счётчик посещения - обновляется дата. Это не логично. Дата изменяться должна при обновлении контента.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы