Таблицы аудита: каждое поле для таблицы или одна таблица

В моем проекте все хорошо, кроме полей аудита. Просто вставьте и обновите аудит в нашей воображаемой вселенной.

Я предложил одну таблицу, похожую на следующие примеры:

Но моя команда думала иначе, они поместили столбец в каждую таблицу, чтобы отслеживать обновление или время вставки. И когда я спросил почему? они сказали мне, что так они следят за своей работой.

В конце концов, я сдаюсь и кладу каждое поле на каждую таблицу. Поскольку вся команда, кроме меня, велела мне поставить эти поля.

Пример:

Их подход

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 |
+-----------+------------+--------+------+-------------+

Итак, вопрос:

Какой дизайн лучше: одна таблица с историей транзакций или одно поле для каждой таблицы? (За и против)

18
задан Community 23 May 2017 в 12:07
поделиться