从数据库分表分析PHPCMS2008的内容管理

PHPCMS2008数据结构相对于07版有了很大的变动,而这些变动也自然而然的体现在了它的内容的处理流程方面。接下来,我们简单的看下内容模块

首先,我们先回顾下07版的内容模块是如何工作的,我们找到PHPCMS_ROOT(也就是根目录)的module下,我们会发现,像文章和图片这些基础内容模块是以文件夹的形式存在的,他们是相互独立的。文件夹中必须包括的有以下几个基础的文件admin.inc.php,myitem.inc.php,type.inc.php,show.inc.php,search.inc.php,list.inc.php,index,inc.php等,以及admin,copy,include,install,special,uninstall几个文件夹。单从名字就可以看的出,所有的处理流程,这里都囊括了,其中还包括模块的安装卸载。这种处理已经很是优化了。现在我们来看看08版,module这个很核心的文件夹不见了,那为什么我们在后台还是可以很方便的操作内容模块呢,它到底去了哪里。我们只能去数据库查看其中的端倪了。

07版的每个频道是只能绑定一种内容模块的,比如,我建一个频道是新闻的,那我就把这个频道设为article,于是数据库中,就有了类似这样的两个表article_1(注意:这个1是该频道的ID号)和article_data_1,当我们要在这个频道加入图片(picture)的内容时,在理论和实际操作都是不允许的,我们只能重新建一个专门放图片类的频道,这也是为什么08版要大动手术的根本原因。08版的数据结构是可以由用户自己定义的,比如我们建立一个新闻的内容模块(官方叫内容模型,他们说的可能更确切些),我们可以自己定义一个表,表的格式会按照phpcms_c_xxx(注:phpcms_是前缀,c应该是必须的,而xxx是你自己定义的)。其实这个表从本质上只是用来储存内容的,我们要添加的内容其实要从phpcms_content,phpcms_content_count,phpcms_content_postition绕一下,内容的ID也是以phpcms_content这个表为标准的。也就是说,这个CMS系统的所有文章的索引都在phpcms_content中。那我们千辛万苦定义的内容模型的结构在哪里呢?让我们看看phpcms_model这个表,你会发现几乎所有的内容模型都列在这里了,而具体的设置,比如那个选项是什么都存在phpcms_model_field中。而那些附加的非内容性的模块都被很聪明的放在另外一个表phpcms_module中了。

这只是本人一点个人看法,希望大家指正,谢谢

相关日志


如果你觉得这篇文章不错,你可以 给我留个回复订阅它。无论如何,谢谢你的支持!

评论

还没有评论。

发表评论

(必填)

(必填)