在您的数据库表中有“标准”列是常见的和良好的做法吗?或者这有点矫枉过正?

时间:2010-09-13 17:56:50

标签: sql database

我们的数据库目前有数据库中所有表的“CreatedByUser”,“CreatedTime”,“ModifiedByUser”,“Modified Time”,“Status”和“Description”。有时它被正确使用,但在大多数情况下,它不是。这是一种标准做法还是完全矫枉过正?如果是标准做法,是否有一种简单的方法可以自动为在Microsoft SQL Server Management Studio中创建的每个表创建“标准”列?提前谢谢。

更新:回答问题“未正确使用”,意味着修改后的字段根本没有填充或根本没有更新。

3 个答案:

答案 0 :(得分:3)

完全依赖于您的申请。我可以看到CreateBy / ModifyBy字段的实用程序,但在一般意义上,“状态”和“描述”用于什么?

我对推荐这一点犹豫不决(我不是触发器的忠实粉丝),但是您可以创建数据库触发器来更新ModifyTime和ModifyUser列,而不是依靠应用程序代码来管理和更新这些字段。 / p>

答案 1 :(得分:2)

如果审计要求是跟踪谁创建和/或修改了数据库中的每条记录,那么是的,这是一种很好的做法。

插入语句应设置为使用createdTime和modifiedTime的“当前时间戳”。

更新语句应保留先前的createdTime,并使用“currentTime”作为modifiedTime。

应用程序代码应该处理涉及的用户。

答案 2 :(得分:0)

答案取决于必要性*基于利益相关者的要求和您的经验。对于任何类型的信息,将受到:

  • 安全审核
  • 数据恢复
  • 测试

添加适当的*日志记录列。即使目前没有必要执行这些任务,如果根据您的经验*,他们最终仍然会完成,请添加列以确保安全*。

*:您如何解释已加星标取决于应用程序的重要性,维护此信息所需的资源量,或其他可能对您的特定方案起作用的内容。

相关问题