веб интерфейсе может редактировать свойства. Задача - сохранить время редактирования каждого свойства. Данные хранятся в БД, доступ через EF.
Решение в лоб - написать 30 запросов на редактирование каждого свойства.
Как можно это реализовать иначе?
А если триггер в бд повесить на изменение свойства? Тогда автоматом будет
Мне кажется, какой-то дизайн странный. Очень странный. Запись таблицы сохраняется после редактирования каждого поля? Если да - то логгируй сохранение записи и отслеживай какие поля изменились. Если нет - значит поле может быть отредактировано (и логгировано) - но потом запись не сохранят? Целостность нарушается. Ну или делай таблицу для логгирования, на уровне бэкенда при правке полей создавай там запись лога, а потом в одной транзакции с сохранением основной таблицы фигачь в базу. Как-то, имхо
Я же прр дизайн ничего не писал, только требования - сохранять инфу о том когда (и кем) было отредактировано поле. Но не хочется делать по методу для редактирования каждого поля
Требование - это тоже дизайн, только уровнем выше. Странное требование. Я бы поговорил с тем, кто его придумал чтобы понять, чего они хотят получить и выбрать, возможно, какой-то более разумный вариант.
Очень частое требование во внутрикорпоративных системах, там вечно разборки идут кто что наменял )
Обычно на конкретные поля/статусы и т.д. только вешается, не на все подряд. Ну или универсальный аудит всего бывает, конечно
Вот сколько уже с этими системами работаю, логируются критические сучности, целиком, те от которых многое зависит, а так как пользователи это отдельная каста, и они вместо того чтобы попросить нормально поле под что то, могут начать юзать поле коментария, то даже его логируем.
Таблица истории, хранить полную копию и кто изменил.
Полную копию объекта?
Да, всю строку.
Тогда нужно будет попотеть, что бы выбрать кем и когда было измененл каждое поле
Почему? Хронология же будет.
Нормальное решение хранить инфу о последнем изменении поля в той же таблице, что и данные объекта?
нет, для аудита лучше вынести отдельную таблицу, а то и базу
Обсуждают сегодня