В моем проекте все хорошо, кроме полей аудита. Просто вставьте и обновите аудит в нашей воображаемой вселенной.
Я предложил одну таблицу, похожую на следующие примеры:
лучший дизайн для таблицы базы данных журнала изменений / аудита?
Предложения по реализации таблиц аудита в SQL Server? Просто имя таблицы , столбец таблицы, пользователь, действие и дата.
Но моя команда думала иначе, они поместили столбец в каждую таблицу, чтобы отслеживать обновление или время вставки. И когда я спросил почему? они сказали мне, что так они следят за своей работой.
В конце концов, я сдаюсь и кладу каждое поле на каждую таблицу. Поскольку вся команда, кроме меня, велела мне поставить эти поля.
Пример:
Их подход
Table Customer
+-------------+-------------+-----+--------------------------------+-------------+
| Name | LastName | ... | LastModification (Audit Field) | User |
+-------------+-------------+-----+--------------------------------+-------------+
| varchar(30) | varchar(50) | ... | datetime | varchar(30) |
+-------------+-------------+-----+--------------------------------+-------------+
Мой подход
Table Customer
+-------------+-------------+-----+
| Name | LastName | ... |
+-------------+-------------+-----+
| varchar(30) | varchar(50) | ... |
+-------------+-------------+-----+
Table Audit
+-----------+------------+--------+------+-------------+
| TableName | TableField | Action | User | DateAndTime |
+-----------+------------+--------+------+-------------+
Итак, вопрос:
Какой дизайн лучше: одна таблица с историей транзакций или одно поле для каждой таблицы? (За и против)