Автоматически обновлять дату последнего изменения в приложении ASP.Net MVC

Общая информация:

  1. Приложение ASP.NET MVC

  2. с использованием ADO.NET Entity Framework

  3. SQL Server 2005

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

Тогда мои вопросы:

  1. Есть ли способ сделать это на уровне базы данных с помощью хранимой процедуры, которую я мог бы вызвать?

  2. Если нет, что бы вы посоветовали мне сделать с прикладной стороны, чтобы лучше всего справиться с этим программно?

Если какая-либо дополнительная информация будет полезна, я буду рад предоставить ее, мне было трудно понять, как даже задать этот вопрос.


person Blair Scott    schedule 13.03.2009    source источник


Ответы (2)



Это зависит от того, где вы хотите, чтобы ваш штраф был. Вы можете получить его одним из двух способов.

  • Используйте триггер для распространения изменений вверх по иерархии. Это может быть лучше, когда вы пишете один раз и много читаете. например: обновите адрес, и последнее изменение будет установлено в родительских записях, а также в самом адресе.

  • Просто обновите последнее изменение, а затем запросите все, когда вам нужно увидеть, когда что-то было изменено. Это может быть лучше, если вы много пишете, но очень мало читаете. например: Обновите только последнее изменение адреса. Когда вы запрашиваете измененные записи, запрашивайте записи с последним изменением или записи с адресами, которые имели последнее изменение.

Трудно сказать, не зная вашей ситуации. Если вам нужно обновить все связанные даты последнего изменения, я бы пошел по маршруту триггера, чтобы все было просто.

person Josh Bush    schedule 13.03.2009