Лучший способ реализовать редактирование формы и аудит всех изменений? - PullRequest
1 голос
/ 19 января 2011

Я начинаю новый проект, в котором нужно будет разрешать редактирование форм, но следить за оригиналом и кто что делал и где редактировал (ps я не смогу использовать какое-либо дополнительное программное обеспечение, кроме visual studio 2010) и Microsoft SQL Server Management Studio, поэтому нет смысла предлагать какое-либо дополнительное программное обеспечение, это просто вопрос кода или дизайна таблицы.

Я - перфекционист, и я знаю, что некоторые возможные пути для достижения этого могут изменить мой общий проект, но я не уверен, что мои идеи о том, как реализовать это, являются лучшими, поэтому мне нравится слышать мнение других о ниже идеи и ваши собственные идеи о самом быстром и эффективном способе решения вышеуказанной проблемы.

Идеи: -

  1. Я бы настроил его так, чтобы при редактировании он отображал все существующие диапазоны данных от текстовых полей до радиокнопок и даже некоторые выпадающие списки, а также значение, которое они имели, а затем при его отправке копировал исходную запись. через идентификатор в таблицу достижений создайте новую запись, а затем удалите оригинал из основной таблицы.

  2. Я полагаю, что каким-то образом можно добавить количество X комментариев к любому разделу формы, и в каждом из них будет указана временная метка и имя пользователя из win-auth.

Редактировать - я намеревался получить множество решений, но я полагаю, что как только я смогу начать работу с разделом редактирования этого проекта, если данное решение будет работать, я отмечу это как правильное.

1 Ответ

3 голосов
/ 19 января 2011

Я не уверен, что это то, что вы ищете, но у меня есть необходимость регистрировать все изменения в данных (по причинам аудита), и способ, которым я это реализовал, состоит в создании новой таблицы 'History' в SQLСервер, на котором будет храниться идентификатор записи, имя пользователя человека, который ее изменил, добавили ли они / изменили / удалили что-то и когда это произошло и т. Д.

В коде для добавления / редактирования / удаления вещей в моей базе данных я всегдавызовите ObjectContext.SaveChanges (я использую Entity Framework 4), так что я реализовал расширение этого метода, которое использует различные части ObjectStateManager для получения необходимой информации об изменившемся объекте и вставляет детали в таблицу History.Затем вам просто нужно запросить эту таблицу в базе данных, чтобы отобразить детали того, что изменилось.

...