当前位置:  开发笔记 > 编程语言 > 正文

跟踪更改历史记录的数据库结构

如何解决《跟踪更改历史记录的数据库结构》经验,为你挑选了1个好方法。

我正在从事项目管理系统的数据库设计作为个人项目,我遇到了麻烦.

我想实现票务系统,我希望票证看起来像Trac中的票证.我会用什么结构来复制这个系统?(我在任何系统上都没有成功安装trac所以我真的看不到它在做什么)

注意:我试图在任何版本存储或显示票证都没有意义.我只需要一个变化的历史.我不想存储额外的数据.另外,我在文本字段中使用序列化数组实现了这样的功能.我不想再将其作为解决方案来实现.

编辑:我只关注数据库结构.触发器/回调不是真正的问题.



1> Guy Starbuck..:

我使用"瘦"设计实现了纯记录更改数据:

RecordID  Table  Column  OldValue  NewValue
--------  -----  ------  --------  --------

您可能不想使用"表格"和"列",而是使用"对象"和"属性"等,具体取决于您的设计.

这具有灵活性和简单性的优点,但是以查询速度为代价 - "表"和"列"列上的聚簇索引可以加速查询和过滤.但是,如果您要在桌面或对象级别频繁地在线查看更改日志,您可能希望设计更平坦的内容.

编辑:有几个人正确地指出,使用这个解决方案,你无法将变更集合在一起.我在上面的表中忘了这一点 - 我使用的实现还有一个带有日期时间,用户和其他信息的"Transaction"表,以及一个"TransactionID"列,所以设计看起来像这样:

CHANGE LOG TABLE:
RecordID  Table  Column  OldValue  NewValue  TransactionID
--------  -----  ------  --------  --------  -------------

TRANSACTION LOG TABLE:
TransactionID  UserID  TransactionDate
-------------  ------  ---------------

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有