0

我正在创建一个数据库来存储用户信息,并且需要记录对用户所做的更改。

这最终将导致一种“时间线”,因此日期/时间因素至关重要。

对于这个问题,我将使用以下示例:

#ID - int
memName - string
memBio - string
memStatusString - string

现在,我的想法是将其链接到这样的表:

ID - int
#memID - int
dateNameChanged - DateTime
dateBioChanged - DateTime
dateStatusStringChanged - DateTime

这是记录信息的好方法吗?我想在另一张桌子上做,以便以后轻松列出。

此外,我从不将日志记录放在同一个表中,因为日志日期只会在更改之后出现。如果用户从不改变,那只会浪费空间。

综上所述;

有一个更好的方法吗?

更新:我为缺乏信息道歉。我使用的是 SQL Server 2008,asp net c# 3.5 - 4(只做数据库结构 atm)。

此外,成员将有不同的表,例如 tblMemberInformation、tblClanInformation、tblMemberGameRank

每个表中的每个 CHANGED 数据(只是为了确认)都需要存储到具有相应日期的日志文件中。

4

2 回答 2

1

您尚未指定您使用的 SQL Server 版本,因此我将假定为最新版本。

SQL Server 2008+ 已内置审计

审核 SQL Server 数据库引擎的实例或单个数据库涉及跟踪和记录数据库引擎上发生的事件。SQL Server 审计允许您创建服务器审计,其中可以包含服务器级事件的服务器审计规范和数据库级事件的数据库审计规范。审核的事件可以写入事件日志或审核文件。

于 2012-08-04T11:08:50.627 回答
1

SQL 审计确实允许您审计对特定对象的特定操作。例如,您可以仅在一张表上审核 UPDATE。请参阅http://www.ultimatewindowssecurity.com/sqlserver/auditpolicy/auditactiongroups/database-level_audit_actions.aspx。我意识到 SQL 审计可能不适合这种需求,但这就是它的能力。

于 2012-08-06T20:34:24.093 回答