关于一个CMS的设计逻辑层面,新人请教

#1 罕夕撒

小弟是,初学PHP的,想通过SPEEDPHP进一步了解PHP实现的程序,目前我根据个人的情况,想通过一个CMS更加具体的学习PHP,对于SPEEDPHP想必大家都应该非常明白,但对于我这个新手来说,还是存在很多操作层面的困难,因为是新手,空有理论,但没有实践,所以借此推出小弟设计的一个CMS规划,其中有诸多不理解的地方,希望有前辈能够指点一二!

假定名称:XXCMS
一、文章功能
二、图片功能
三、栏目功能
四、焦点图功能
五、专题功能
六、友情链接
七、SEO功能
八、URL设计优化
九、管理功能

以上为CMS组成的大块,今天我的学习目标是文章功能,以下是小弟规划设计的数据库

一、文章功能
  A、文章实现的基本需求点
    1.标题
    2.内容
    3.关键词
    4.描述
    5.url生成
  B、数据库设计
   1.webbiaoti
   2.wenneirong
   3.keywords
   4.description
   5.表单:wenzhang
  C、PHP脚本实现
     以上为文章块的需求点,该功能的实现,不体现管理员,只体现写入标题,内容,内容编辑器,网页标题,网页描述,网页关键词等,等目前小弟遇到一个比较尴尬的地方,就是我想在文章,图片,栏目,专题(单页)等模块中也实现基本的SEO描述,关键词等插入的方式,这个插入我不理解,如何在数据库中实现,是专门建立一个表来记录这些呢,还是如何来写这些?

2012-03-02 13:58:59

#2 jake

一般CMS,除了文章记录外,还会有“页面”记录,这点在wordpress里面有明确的体现。

所以首先你需要增加一个“页面”记录表,是记录:首页,专题页等
另外,每个文章都应该有个分类,所以你也应该建立“分类”记录表,每个文章记录增加一个字段记录所属分类。

关于SEO字段,包括title,keyword,description,都是和“文章”、“页面”(如首页)、“分类”(列表页)相关的,但是它们又是统一的,所以你可以有采取以下两种方案之一:

可选方案一:分别在“文章”、“页面”、“分类”三个表中,增加三个字段,分别记录三个SEO字段。

可选方案二:建立一个SEO字段表,字段有

“所属类型”(如1是文章、2是页面、3是分类),
“ID”(就是文章ID、页面ID、分类ID),
“title”
“keyword”
“description”

这样的表就可以“横向”记录了全部的SEO字段,在每次取记录的时候,都通过“所属类型”和“ID”来进行获取。

2012-03-02 21:06:01

#3 罕夕撒

jake 发表于 2012-3-2 21:06
一般CMS,除了文章记录外,还会有“页面”记录,这点在wordpress里面有明确的体现。

所以首先你需要增加一 ...
老大

    非常感谢您的回答,目前我是采用第一种方案,但目前遇到一个问题,就是数据库相互之间如何调用存储的字段类,具体是这样的。

    文章类表
    分类类表
    列表类表
  
     在选择发布“文章”时,选择相应的“分类”,输出“文章”到“列表”,这算是一个文章功能基本的一个环节,也是根据老大您上面所提的方案进行调整规划而来,目前我就是弄不明白的地方,如何在“文章”选择时,出现“分类”,然后输出到“列表”,这里面我明白的是数据库和PHP之间应该还有2个控制和2个表,但目前不懂的是,如何让三者之间相互存储到数据库,进而形成相互之间的循环关联性.
   
   我来假设下,该如何操作的具体方法,以上为我比较疑惑的地方。

   1.文章表归类的字段:A.wzid(属性值,主键) B.wztitle(标题) C.wzneirong(内容)  D.wzcid(属于分类) E.wzbid(属于列表)
   2.分类表归类的字段:A.wzfid(属性值,主键) B.wzcid(分类) C.wzbid(列表)
  

   以上为数据库的表和字段的归类
   以下为PHP
   
    分类类表 fenlei.php 到后端html 输入页分类属性值(名称假设:1),数据库存储1. 前端html列表调用显示1.
    文章类wenzhang.php 到后端html输入页 选择分类”1“-输入文章标题,再次输入文章内容。提交 数据库存储,前端html页调用列表显示输出分类“1“,文章标题?

在这个环节中,我不是很明白,如何在这里面形成相互之间的推送(提交数据库到2个表的数据),是不是在相应的PHP控制器中写PHP控制类库?

   希望老大,在出来指点一下,老大,可以说直接点,因为小弟没有写过,所以属于空白。。
   



2012-03-03 15:25:51

#4 罕夕撒

jake 发表于 2012-3-2 21:06
一般CMS,除了文章记录外,还会有“页面”记录,这点在wordpress里面有明确的体现。

所以首先你需要增加一 ...
一个逻辑关系的图片

未标题-1.gif

2012-03-03 15:43:52

#5 jake

感觉你想太多了,进了一个古怪的圈。

1. 首先“列表”=“分类”
2. 每条文章表的记录,都有分类ID

就这么简单

2012-03-03 21:58:10

#6 jiayan41

请看一下VECMS的数据库设计,其实用不了多少表的,如果将来VECMS要增加关键字,增加标签,增加附件,只需要再增加一个tags表和关系表就行了,通过关系表把这些东西都和内容表相连……

2012-03-04 17:39:22

#7 jake

jiayan41 发表于 2012-3-4 17:39
请看一下VECMS的数据库设计,其实用不了多少表的,如果将来VECMS要增加关键字,增加标签,增加附件,只需要 ...
对,看看相关的源码会比较清楚

2012-03-04 17:41:43

#8 罕夕撒

jiayan41 发表于 2012-3-4 17:39
请看一下VECMS的数据库设计,其实用不了多少表的,如果将来VECMS要增加关键字,增加标签,增加附件,只需要 ...
在看了,同时把老大的手册也要细细的看一边!

2012-03-04 19:13:16