我的项目除了审计字段外一切都很好。在我们的想象宇宙中,只有插入和更新受到审计。
我提出了一个类似于下面例子的表:
在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 |
+-----------+------------+--------+------+-------------+
那么问题是:
哪种设计更好,一个保存交易历史记录的表格还是每个表格都有一个字段?(各自的利弊)