首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于设计好的内容发布系统的资源

用于设计好的内容发布系统的资源
EN

Stack Overflow用户
提问于 2009-06-30 06:21:26
回答 4查看 200关注 0票数 2

我目前使用的内容管理系统只支持数据(新闻、事件、博客、文件等)的实时编辑,并且我被要求构建一个支持起草(带审核)+修订历史系统的系统。我使用的cms是在内部开发的,所以我可能不得不从头开始编写代码。

在每次保存项目时,它都会在“时间线”中创建数据的快照。草案也是如此。自动化功能将在需要时将时间线草稿拉入原始记录中。

时间线表将存储数据类型&主键、数据的序列化版本+创建/修改日期+起草日期(如果在将来)

我已经快速浏览了一下其他系统,但我还没有从我目前的想法中改进。

我相信已经有人构建了这样的系统,我想在开始构建之前改进我的设计。任何好的文章/资源也会有所帮助。

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-06-30 08:04:50

我认为使用serialize()将每行编码为单个字符串,然后将其保存到中央数据库可能是一种解决方案。

你会有你的‘实时’数据库和相关的表等,但是当你编辑或创建一些东西(没有点击发布)时,它将不是保存在你的主表中,而是保存到一个表中,比如:

代码语言:javascript
复制
id - PRI INT
date - DATETIME
table - VARCHAR
table_id - INT
type - ENUM('UNPUBLISHED','ARCHIVED','DELETED');
data - TEXT/BLOB

未发布设置为‘...with’的类型,并存储表和table_id,以便它知道它来自哪里。然后单击publish将序列化当前表的内容,将其存储在上面设置为“archive”的表中,然后读出最新的更改(标记为未发布)并将其放入数据库中。这同样适用于删除行-将它们放入并标记为“已删除”,以实现潜在的取消删除/回滚功能。

它需要相当多的跑腿工作才能让它全部工作,但应该提供完整的发布/取消发布和回滚功能。正确地集成到自定义数据库函数中,也可以透明地完成所有这些操作(从SQL的角度来看)。

我一直计划将此作为解决您似乎遇到的相同问题的解决方案,但从我的角度来看,这仍然是理论上的,但我认为这个想法是合理的。

票数 1
EN

Stack Overflow用户

发布于 2009-06-30 06:50:31

对我来说这听起来很像wiki。您可能想看看维基百科使用的系统MediaWiki,它也使用PHP和MySQL。

票数 1
EN

Stack Overflow用户

发布于 2009-06-30 06:37:37

DotNetNuke是一个很好的开源内容管理系统,你可以阅读该系统的源代码来获得灵感。或者,您可以简单地使用DotNetNuke。

http://www.dotnetnuke.com/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1062011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档