海洋cms【自然框架】海洋CMS之数据库设计
在园子里也混了三年多,随笔200多,一开始只是想把自己的经验写一下,后来呢弄出来了一个“自然框架”,主要精力就放在了介绍自然框架的思路上面了。随笔多了就发现一个问题:有点乱。虽然博客有分组,但是只支持一级分组,不支持n级的。博客里也没有“栏目”这一类的设置。所以对于随笔的管理有有点力不从心了。有些兄弟看到我的博客,看到我说自然框架,然后就会很迷茫,自然框架到底是什么?能做什么?如果想看看的话,从什么地方开始看,按照什么顺序来看?
博客的这种形式就不大好解决这种需求了,当然也许是我对博客还不了解,没有用好吧。所以我想做一个网站,这个网站专门介绍自然框架。一开始只想做一个静态的,内容也不多嘛,做几个页面,介绍一下,把博客里的随笔整理一下做个目录便于阅读。但是试了一下才发现,静态页面好麻烦呀,也许是我太懒了吧,总是想简单一些。于是就想做一个简单的CMS,然后用这个CMS来做自然框架的介绍网站。
您可能会说了,海洋又在重复制造轮子了,网上有一大堆现成的,有很多成熟的不去用,自己写什么呀?
首先呢,我是程序员(嘿嘿),我先想到的是我自己能不能做出来?别人能做我为什么不行?我不是顾客,我也不是有钱人,到处去弄现成的。其次呢,做一个CMS也是一个练手的机会,同时也是自然框架的一个Demo,比较大的、完整的Demo。借此来说明自然框架的使用方式,和在网页里的作用。最后就是想借此说一下我的设计数据库的思路。我觉得我的设计数据库的思路还是有点特色的。
好了,开始进入正题。
首先是了解需求。一个网站会有什么?首页、新闻(图文形式的信息)、产品介绍、文件下载、图片浏览、在线视频等。这些都算是“内容”的几种形式吧,当然还可以有其他的形式。
这个需求比较简单,也比较简陋,暂时就以这个需求来进行设计吧。如果是按照面向对象的方式要如何设计呢?这个我不太清楚,也许是要画一个UML吧,也许要建模。尝试一下,画了一个UML不知道对不对,拿出来请大家批批。
【CMS的类图】
图很简单也没什么具体的属性,因为需求是变化的,现在也没有太具体的需求,所以属性就先设置几个主要的。另外俺英文不好,怕查出来的英文单词不正确产生歧义,所以直接用汉字了。可能您看着很别扭,但是至少不会产生什么歧义,理解起来也会比较容易吧,呵呵。
“内容”作为父类,其他的作为子类。内容是一种“抽象”,把各种形式的内容的共同部分提炼出来,比如标题、内容、添加人、添加日期、点击量等。子类负责各自特有的属性。
我觉得这种提炼的方式比较好,在设计数据库表结构的时候可以借鉴一下。于是就有了这样的数据库设计。
【CMS ER图】
“内容”作为主体和中心,其他的都是为了这个中心(内容)来服务的。左面是对内容的限制,栏目相当于大分类,分类就是小分类(可以是n级的),类型就是内容的形式,比如图文、下载、视频、图片等。右面是扩展。扩展和类型是一一对应的。
这就形成了一个“骨架”,骨架是以“内容”为中心,ArticleID作为关联字段,可以增加扩展表,但是都要以ArticleID作为关联字段。至于有多少扩展表,那就可以根据实际需求来变化,表里的字段也是可以根据需求来增减。
设置这种“骨架”的好处:虽然扩展表、字段会有变化,但是“骨架”结构是不变的。这样一是可以让结构清晰,抓住中心、重点;二是当需求变化的时候,对结构的影响降到最低;三是,如果对于这种“骨架”习惯、掌握了之后,在看到其他项目的设计就会很容易进入和读懂。关于第三点,以后大家就会理解的。
基本思路就是这样,抛砖引玉了。
ps:CMS的字段说明
表编号 字段编号 字段名 中文名 类型 大小 默认值 允许空 说明 5000 0 CMS_Channel 网站栏目 5000 10 ChannelID 主键 int 4 1 0 主键,自增 5000 20 channelName 栏目名称 nvarchar 30 _ 0 栏目名称 5000 30 Sort 排序 int 4 10 0 小号在前 5000 40 URL 栏目的网址 nvarchar 50 _ 0 新闻内容 5005 0 CMS_ArticleClass 内容的n级分组 5005 10 ClassID 主键 int 4 1 0 主键,自增 5005 20 ChannelID 所属栏目 int 4 0 所属栏目 5005 30 Class 文章分类 nvarchar 30 0 支持n级分类,也可以不分类 5005 40 ParentID 父ID int 4 0 以备n级分类 5010 0 CMS_Article 网站里的内容 5010 10 ArticleID 主键 int 4 1 0 主键,自增 5010 30 ChannelID 所属栏目 int 4 1 0 所属栏目 5010 40 ClassID 分类 int 4 0 0 支持n级分类,也可以不分类 5010 50 TypeID 类型 int 4 0 0 1:新闻;2:下载;3:其他待定 5010 20 Title 标题 nvarchar 30 0 内容的标题 5010 60 Summary 简介 nvarchar 30 0 内容的概要介绍 5010 70 Content 内容 ntext 16 0 图文内容 5010 80 Hits 人气 int 4 0 点击量 5010 90 SearchText 搜索 ntext 16 0 搜索内容 5010 100 AddedDate 添加日期 smalldatetime 4 GetDate() 0 记录添加日期 5010 110 AddedPersonID 添加人 int 4 1 0 添加人 5010 120 UpdatedDate 最后修改日期 smalldatetime 4 GetDate() 0 记录最后修改日期 5010 130 UpdatedPersonID 最后修改人 int 4 1 0 记录哪个人最后修改的 5020 0 CMS_DownLoad 下载 5020 10 DownLoadID 主键 int 4 1 0 主键,自增 5020 20 ArticleID 内容ID int 4 1 0 关联 “内容”表 5020 30 Title 标题 nvarchar 30 0 下载的说明,比如“本地下载”、“博客园下载” 5020 40 DownURL 下载地址 nvarchar 30 0 下载地址,可以是文件地址也可以是网页地址 5020 50 DownCount 下载次数 int 4 1 0 下载/访问次数 5020 60 AddedDate 上传时间 smalldatetime 4 GetDate() 0 上传文件的时间 5020 70 Version 版本 nvarchar 30 0 文件的版本
更多文章
-
海洋cms模板标签大全(收藏级)
海洋cms以其免费开源、采集功能强大著称,吸引了越来越影视站长。那么在使用海洋cms过程中,模板标签是必须要掌握的。下面是整理的海洋cms模板标签大全,对于做站朋友,一定有用,赶快收藏起来吧!海洋cms模板标签目录00.相关必要说明 01.全局标签 02.自定义标签 03.if标签和嵌套if标签subif(支持php语句、多e
-
海洋cms模板更换及安装教程
很多刚使用海洋cms站长朋友,不知道如何更换模板及安装,下面就详细的图文教程,快来学习! 第一步,从免费海洋cms模板下载网站(http://www.dongliancnc.com),选择喜好的模板并下载,特别说明都是人工测试过的模板,保证使用哦。 第二步,将模板压缩包,上传文件到网站templets目录下
-
海洋cms为什么我加和的.playon标签无效
为什么我加和的.playon标签无效 我在模板中加入.playo 9_146_0ec63ed33348890.png 在源码中也显示也有 9_146_cd27a087a37315f.png 可是就是没有
-
海洋cms牛牛技术支持特别声明
论坛声明: 本论坛所有发布的源码、程序、代码等可能包括导向第三方网站的链接和引用。对这些链接网站上的内容或者外部网站又导向的任何其它链接网站上的内容,牛牛论坛对于这些网站无法控制,因此也不承担任何责任、技术性售后服务,如需技术性服务可联系在线客服(有偿服务)。牛牛论坛提供这些链接的目的仅是便
-
海洋cms重要通知:关于赞片CMS程序V9、V10版本无法使用的公告
重要通知:关于赞片CMS程序V9、V10版本无法使用的公告 经牛牛论坛技术仔细查询有关代码,赞片CMS程序V9、V10版本确实存在后门代码,请勿网络传播此赞片CMS两个版本程序并立刻删除此赞片CMS程序(仅限于本论坛提供的此V9、V10版本,经其它途径提供下载的版本给站长造成的损失本论