关于如何最好地为基于 Java 的 Web 应用程序实现文章修订历史并将其保存在 AuditLog 中的任何想法
StackOverflow 已经有这样一个功能,可以让人们看到一个版本与另一个版本的差异,就像 SVN 客户端一样。
这更像是一个设计问题而不是实现问题。
另外:如何在网页上显示这些更改?
补充:建议的解决方案
Article
--------------------------------
Integer id
String title
String body
List<Tag> tags
AppUser createdBy
Date createdDate
AuditLog
--------------------------------
Integer id
Integer objectId
Operation operation // enum with UPDATE and DELETE. I won't audit an insert
Date createdDate
AppUser createdBy
String class
String revisionXML
String comment
Hibernate Interceptor将拦截保存过程并使用Castor XML创建旧对象的 XML 字符串。
class 和 id 用于获取特定对象的修订版本。
google-diff-match-patch将用于创建 HTML diff 文件