如何创建“跟踪所有编辑”
我在我的网站上使用 PHP(Yii 框架)和 MySQL 数据库。
用户可以发布和编辑一些文章。 我怎样才能像这里一样存储每个编辑版本? (与维基百科一样,该网站是协作编辑的,并且所有编辑都会被跟踪)
我应该使用什么以及如何使用?数据库结构?一些图书馆? 我应该使用哪些关键字进行谷歌搜索? :)
UPD。以及如何显示修订之间的更改,就像SO中的这里一样?
谢谢
I'm using PHP (Yii-framework) and MySQL database on my site.
Users can post and edit some articles.
How can I store every edit version like here in SO?
(Like Wikipedia, this site is collaboratively edited, and all edits are tracked)
What sould I use and how? Database structure? Some libraries?
What keywords should I use to google? :)
UPD. And how to display changes between revisions, like here in SO?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我将使用您当前的数据库结构(如果您有一个,否则使用您需要的所有字段创建一个),但添加一两列额外的列,最重要的是修订号。每次进行修订时,可以简单地增加该值。干净地编码到数据库
INSERT
命令中可能很棘手(注意,使用INSERT
而不是UPDATE
,因为您想保留旧帖子)。另一种方法是有一列存储更新提交的时间(也许只是“创建时间”?),从中您可以收集有多少更新(计算行数)以及它们的顺序(按日期订购)。
I'd use your current database structure (if you have one, otherwise make one with all the fields you need), but add 1 or two extra columns, the most important being the revision number. This can simply be incremented each time a revision is made. This can be tricky to code cleanly into the database
INSERT
command (note, useINSERT
notUPDATE
because you want to keep the old post).Another way would be to have a column storing the time the update was submitted (maybe just "created time"?), and from that you can glean how many updates there have been (count the rows), and what order they are in (order by date).
您正在寻找具有审核日志记录功能的 PHP ORM。 Yii 框架中嵌入的 ORM 是什么?
我知道 Symfony 使用 Doctrine 并有一个专用的版本化插件这正是你想要的。
也许是“logable_behavior”Yii 骨架可以帮助你。
You're looking for a PHP ORM with audit logging capabilities. What is the ORM embedded within Yii framework?
I know that Symfony uses Doctrine and has a dedicated Versionable Plugin that does exactly what you want.
Maybe the "logable_behavior" Yii skeleton can help you.