Является ли наличие "стандартных" столбцов в таблицах вашей базы данных распространенной и эффективной практикой? или это перебор? - PullRequest
3 голосов
/ 13 сентября 2010

Наша база данных в настоящее время имеет «CreatedByUser», «CreatedTime», «ModifiedByUser», «Modified Time», «Status» и «Description» для всех таблиц в нашей базе данных. Иногда это используется правильно, но по большей части это не так. Это стандартная практика или это полностью излишне? Если это стандартная практика, есть ли простой способ автоматизировать создание «стандартных» столбцов для каждой таблицы, которую вы создаете в Microsoft SQL Server Management Studio? Заранее спасибо.

Обновление: для ответа на вопрос «неправильно используется», то есть оно не заполнено или не обновлено для измененных полей.

Ответы [ 3 ]

3 голосов
/ 13 сентября 2010

Полностью зависит от вашего приложения.Я вижу полезность полей CreateBy / ModifyBy, но для чего используются «Состояние» и «Описание», в общем смысле?

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

2 голосов
/ 13 сентября 2010

Если требование аудита состоит в том, чтобы отслеживать, кто создал и / или изменил каждую запись в базе данных, то да, это хорошая практика.

Операторы вставки должны быть установлены так, чтобы использовать «текущую метку времени» для созданного и измененного времени.

Операторы обновления должны сохранять ранее созданное время и использовать «текущую метку времени» для измененного времени.

Код приложения должен определять, какой пользователь вовлечен.

0 голосов
/ 13 сентября 2010

Ответ зависит от необходимости * в зависимости от требований заинтересованных сторон и вашего опыта.Для любого типа информации, которая будет подлежать:

  • аудит безопасности
  • восстановление данных
  • тестирование

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...