Community Server系列之六:CS2中的关键词及数据结构
写这篇帖子的目的在于介绍整个CS中的关键点,以我的经验来看着重应该了解的地方的一些罗列。这对初次接触CS的朋友来说我想是有帮助的。
模块:在CS2中最主要的官方模块有(论坛Forums、博客Blogs、相册Galleries)现在只讨论主要的这三个模块,下面的文字也围绕着这三个模块进行讨论。这三个模块具有一定的共同点,CS把这三个模块抽象到一起了,这是CS的核心所在。
名称 |
说明 |
主要数据表 |
备注 |
Section |
基本板块:论坛里表现为论坛的板块,博客里表现为每个人的博客,相册表现为每个人的相册。 |
cs_Sections主要保存模块数据包括模块的组别名称所有者等等。
|
CS中很重要的一个概念,几乎所有的逻辑都与此相关。 |
Group |
组别,在CS中的几乎所有标准模块都依靠Group进行管理,论坛的Group表现为对论坛板块的分类,博客表现为博客的群组,相册也表现为群组,总之,这些模块都要依赖此进行管理 |
cs_Groups,主要保存分组信息 |
所有Section都依赖此进行组合,就算一个Section也需要一个默认Group |
Settings |
几乎每张表都有SettingsID的字段用来区分不同的应用,因为CS一个程序可以同时分成多个应用而互不干扰,每个存储过程,每张表都有相应的对Settings的筛选 |
cs_SiteSettings,站点的基本设置以XML的形式保存在此 cs_Sites站点信息,可设置多个站点 cs_SiteMappings站点和Settings的对应关系 |
这个概念同样重要,现在很多程序都设计成这样的模式,一句话,尽量灵活,CS的灵活性非常到位。 |
Thread |
线程,这个感念比较抽象,但在CS中却是很重要的,这个意思可以简单的认为是一个主题,并包含这个主题所有的相关信息,比如回复数,得分等等 |
cs_Threads,保存每个主题信息, cs_ThreadsRead,阅读者对每个主题的阅读情况 |
在每发表一篇主题(非回复)就在此表添加一条记录 |
Post |
表示包括主题在内的所有用户发表的帖子,无论是回复还是投票或主题统统要在此记录 |
cs_Posts,保存Post的主要数据表其他与Post相关的表还有很多 |
最重要的用户数据表 |
Category |
分类,帖子分类,此分类是针对Section进行的,每个Section都可以有自己的分类,在CS中又叫TAG,可以适当改造一下就变为时下流行的TAG功能 |
cs_Post_Categories&cs_Post_Categories_Parents保存每个Section的分类统计 cs_Posts_InCategories保存每篇帖子对应的分类 |
CS中只有对每个Section的分类管理,而缺少对整个网站的分类,我们可以按照Category模块进行扩展 |
Permission |
授权,与Role角色挂钩,此针对各Section设置各种角色的对应权限,也就是权限矩阵 |
cs_ProductPermissions在此保存针对每种应用模块的默认权限。cs_SectionPermissions针对各种Section的个性权限 |
此处缺少对Group的默认权限,不过根据源代码扩充为支持Group默认权限的功能也很容易 |
Membership |
建立在微软的Membership组件下的基于角色的用户管理系统,使用此功能对设置权限和对用户相关功能的扩充都非常方便 |
以asp_net打头的数据表是Membership所需要的,另外cs中扩展了cs_Users及cs_UserProfile等数据表 |
CS完全依靠Membership达键的用户基础管理系统,很多地方值得好好研究 |
Job |
B/S程序需要定时处理的功能,在此称为Job,我们可以在communityserver.config文件中看到那些Job的配置,运行这些Job都是在单独的线程中执行,与用户交互无关 |
无 |
可以通过后台管理的Jobs Report查看Job的情况,也可通过查看Exception Report查看Jobs有无运行异常 |
熟悉这些关键词及模块对CS的掌握至关重要,希望通过此篇介绍能帮助你更快的了解CS的基础。