我们的数据库目前有数据库中所有表的“CreatedByUser”,“CreatedTime”,“ModifiedByUser”,“Modified Time”,“Status”和“Description”。有时它被正确使用,但在大多数情况下,它不是。这是一种标准做法还是完全矫枉过正?如果是标准做法,是否有一种简单的方法可以自动为在Microsoft SQL Server Management Studio中创建的每个表创建“标准”列?提前谢谢。
更新:回答问题“未正确使用”,意味着修改后的字段根本没有填充或根本没有更新。
答案 0 :(得分:3)
完全依赖于您的申请。我可以看到CreateBy / ModifyBy字段的实用程序,但在一般意义上,“状态”和“描述”用于什么?
我对推荐这一点犹豫不决(我不是触发器的忠实粉丝),但是您可以创建数据库触发器来更新ModifyTime和ModifyUser列,而不是依靠应用程序代码来管理和更新这些字段。 / p>
答案 1 :(得分:2)
如果审计要求是跟踪谁创建和/或修改了数据库中的每条记录,那么是的,这是一种很好的做法。
插入语句应设置为使用createdTime和modifiedTime的“当前时间戳”。
更新语句应保留先前的createdTime,并使用“currentTime”作为modifiedTime。
应用程序代码应该处理涉及的用户。
答案 2 :(得分:0)
答案取决于必要性*基于利益相关者的要求和您的经验。对于任何类型的信息,将受到:
添加适当的*日志记录列。即使目前没有必要执行这些任务,如果根据您的经验*,他们最终仍然会完成,请添加列以确保安全*。
*:您如何解释已加星标取决于应用程序的重要性,维护此信息所需的资源量,或其他可能对您的特定方案起作用的内容。