mysql的审计日志_审计日志的数据库设计

一些wiki平台使用的一种方法是分离识别数据和您正在审核的内容。 它增加了复杂性,但您最终得到了完整记录的审计跟踪,而不仅仅是已编辑的字段列表,您必须将其混搭以便让用户了解旧记录的外观。

例如,如果您有一个名为Opportunities的表来跟踪销售交易,您实际上会创建两个单独的表:

机会

Opportunities_Content(或类似的东西)

“机会”表将包含您用于唯一标识记录的信息,并包含您为外键关系引用的主键。 Opportunities_Content表将包含您的用户可以更改的所有字段以及您希望保留审计跟踪的字段。 内容表中的每条记录都包含自己的PK以及修改日期和修改日期数据。 机会表将包括对当前版本的引用以及有关何时最初创建主记录以及由谁创建的信息。

这是一个简单的例子:

CREATE TABLE dbo.Page(

ID int PRIMARY KEY,

Name nvarchar(200) NOT NULL,

CreatedByName nvarchar(100) NOT NULL,

CurrentRevision int NOT NULL,

CreatedDateTime datetime NOT NULL

内容如下:

CREATE TABLE dbo.PageContent(

PageID int NOT NULL,

Revision int NOT NULL,

Title nvarchar(200) NOT NULL,

User nvarchar(100) NOT NULL,

LastModified datetime NOT NULL,

Comment nvarchar(300) NULL,

Content nvarchar(max) NOT NULL,

Description nvarchar(200) NULL

我可能会使内容表的PK成为PageID和Revision提供的多列密钥,并且Revision是一个标识类型。 您可以使用“修订”列作为FK。 然后通过JOINing拉出合并记录,如下所示:

SELECT * FROM Page

JOIN PageContent ON CurrentRevision = Revision AND ID = PageID

那里可能有一些错误......这是我的头脑。 不过,它应该让你了解另一种模式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值