分享
 
 
 

DotText源码阅读(2)-工程、数据库表结构

王朝other·作者佚名  2006-05-04
窄屏简体版  字體: |||超大  

首先,来看整个工程结构,在此间单列出来,其中很多是初次阅读写下的,可能有些理解不正确,需要注意:

一、解决方案的组成项目

a) Dottext.Web

引用了:

ActiproSoftware.CodeHighlighter

ActiproSoftware.Shared

Dottext.Common

Dottext.Framework

DotText.Search

Dottext.Web.ServiceAPI

FreeTextBox

MetaBuilders.WebControls.DefaultB

MetaBuilders.WebControls.ExpandingPanel

其他就是常规的System下的命名空间:

注意是用了较多的第三方控件

b) Dottext.Web.ServiceAPI

引用了:

Dottext.Framework

Microsoft.Web.Services

System

System.Data

System.Web

System.Web.Services

System.Xml

重点看使用了Dottext.FrameWork的那些?

c) DotText.Search

引用了:

Dottext.Framework

Highlighter

Lucene.Net

Lucene.Net.Analysis.Cn

System

System.Data

System.Web

System.Web.Services

System.Xml

System.Drawing

System.Windows.Forms

d) Dottext.Framework

CookComputing.XmlRpc

Lucene.Net

Microsoft.Web.Services

SgmlReaderDll

System

System.Data

System.Web

System.Web.Services

System.Xml

System.Drawing

System.Windows.Forms

也引用到了第三方控件

e) Dottext.Common

Dottext.Framework

System

System.Data

System.Web

System.Web.Services

System.Xml

System.Drawing

System.Design

f) Dottext.Web.Admin

ActiproSoftware.CodeHighlighter

Dottext.Framework

DotText.Search

FreeTextBox

SkmRss

System

System.Data

System.Web

System.Web.Services

System.Xml

System.Drawing

System.Windows.Forms

引用了SKMRSS值得注意

二、Dottext.Framework 分析

采用了以下的目录:

Components

ArchiveCount.cs

ArchiveCountCollection.cs 统计文章访问数量的类及收集,注意仅仅是一个实体类,而不是数据库相关类

BlogFile.cs

BlogFileCollection.cs 同样是实体类

BlogUser.cs 用户对象/实体类

BuildTree.cs 定义一个构造组件树的抽象接口

CategoryEntry.cs 类别实体对象

CategoryEntryCollection.cs 类别实体收集

CategoryType.cs 类别的枚举

CategoryTree.cs 实现了组件树的接口

Entry.cs 实现IblogIdentifier接口,每一个博客账户的实体类

EntryCollection.cs

EntryQuery.cs 反映博客的现状的实体对象?

EntryRate.cs 统计信息实体类

EntryStatsView.cs 博客统计类别

EntryView.cs 博客的浏览信息实体

EntryViewCollection.cs 博客的浏览信息实体收集

IBlogDataProvider.cs 博客实体类同数据库之间的接口定义

IBlogIdentifier.cs 博客的唯一标示接口

Image.cs 博客相关的图像实体类

ImageCollection.cs

IMail.cs 邮件接口

IPagedResults.cs 分页接口?

KeyWord.cs 博客相关的关键字实体类

KeyWordCollection.cs

Link.cs 连接实体类

LinkCategory.cs 链接的分类实体类

LinkCategoryCollection.cs

LinkCollection.cs

PagedEntryCollection.cs

PagedKeyWordCollection.cs

PagedLinkCollection.cs

PagedReferrerCollection.cs

PagedViewStatCollection.cs

PageType.cs 页类别

PostConfig.cs 发贴选项配置

PostType.cs 信息提交类别,分别有blog Article Comment …

Referrer.cs 引用实体类

ReferrerCollection.cs

Role.cs 配置实体类

SkinControl.cs 博客相关的skin类

SkinControlCollection.cs

Tree.cs 数据结构树的实现

ViewStat.cs 访问统计实体类

ViewStatCollection.cs

这些实体类,用于博客操纵以及系统交互操纵时候采用OOP进行

Configuration

BlogConfig.cs 博客配置类

BlogConfigurationSettings.cs

Config.cs 配置操作相关的静态函数类

ConfigurationFlag.cs 枚举类型

ExtendedProperties.cs 扩展属性处理类

IConfig.cs 配置处理接口

SiteBlogConfig.cs 站点配置类

SiteBlogConfigCollection.cs

SkinConfig.cs 皮肤配置类

Tracking.cs pingback/trackback机制配置类

Data

SQLHelper.cs 微软提供的数据库操作类

ADOHelper.cs MS ADO 抽象类

DAABSectionHandler.cs

DataDTOProvider.cs DTO实现类

DataHelper.cs 数据库访问处理类

IDbProvider.cs 数据库操纵接口

IDTOProvider.cs DTO 接口

IProccessEntry.cs 定义一个操作接口(数据库操作的?)

SqlDataProvider.cs Sql server 操作接口实践类

SqlServer.cs Sql server 的数据库操作类

***以上各类实现数据层的操纵

Email

IMailProvider.cs 定义Email服务商的接口

SystemMail.cs 利用系统接口进行email发送的类

基本上实现了email的对外接口

EntryHandling

改目录下为blog的操作handle ,因改属于比较重要的目录

有两个目录:

DefaultHanlders 却省操作类

CommentDeliveryHandler.cs 当到达一个评论时候的处理

CommentFormatHandler.cs 对评论进行防攻击处理句柄

EntryValidationHandler.cs 验证一个条目时候的处理句柄

KeyWordHandler.cs 格式化关键字的处理

TrackBackHandler.cs 处理TrackBack

WeblogsPingHandler.cs 处理Ping

WebServicePostHandler.cs ws接口

EntryFilter

IEntryFactory.cs 操纵处理句柄类的类工厂接口

ProcessAction.cs 处理行为枚举类

ProcessState.cs 处理状态/情形定义类

HandlerManager.cs 句柄管理类

EntryHanlderQueue.cs 处理队列类

EntryHandler.cs 处理句柄

还有如下的Handle

EntryHandler.cs

EntryHanlderQueue.cs

HandlerManager.cs

IEntryFactory.cs

Format

UrlFormats.cs 组装格式化的URL

Logger

Log.cs

LogManager.cs 日志???

Providers

BaseProvider.cs 提供者基类

BlogProviders.cs Blog的提供类

ScheduledEvents

Event.cs 事件实体类,用于调度

EventHttpModule.cs 事件处理模块

EventManager.cs 事件管理模块

Syndication

BaseAtomWriter.cs ATOM文档XML输出

BaseOpmlWriter.cs Opml文档管理输出类的基类

BaseRssWriter.cs RSS输出类

BaseSyndicationHandler.cs 这类处理的句柄

BaseSyndicationWriter.cs 基类

CachedFeed.cs 缓存Feed类

OpmlWriter.cs OPML输出类

Tracking

AggBugHandler.cs bug 管理类, Lazy way to include 1x1.gif :)

EntryTracker.cs Tracker类

PingBackNotificatinProxy.cs 发出pingback的类

PingBackService.cs 服务类,XMLRpc的

StatsQueueSchedule.cs 调度队列类,继承自Dottext.Framework.ScheduledEvents.Ievent

TrackBackHandler.cs 处理trackback

TrackBackNotificationProxy.cs 代理类

TrackingUrls.cs 处理像素为1的图像html生成

Verifier.cs trackback/pingback活动中获取标题的工具类

WeblogsNotificatinProxy.cs 网志通知代理

Util

BinarySerializer.cs 二进制序列化工具类

BlogCache.cs 实现cache策略的工具类

BlogRequest.cs 读取一个Blog的工具类

BlogTime.cs 处理时间分区、转换的工具类

Globals.cs 全局用到的工具函数

Keywords.cs 根据配置的关键字进行链接生成

ManagedThreadPool.cs 多线程之间的配置管理类

SerializationHelper.cs 序列化操作工具类

StopWatch.cs 调用win32API的函数工具类

Transform.cs 转换工具类

WebPathStripper.cs 处理web路径的类

XmlSerializerSectionHandler.cs 处理XML序列化的工具类

XmlRpc

MetaWeblog.cs

MetaWeblogAPI.cs XML RPC功能

引用了CookComputing.XmlRpc 的XmlRpc功能

三、Dottext.Common 阅读

采用了以下目录来分类

Config

BaseBlogConfig.cs

MultipleBlogConfig.cs

SingleBlogConfig.cs

Data

Cacher.cs 关于blog的各部分缓存

Transformer.cs 路径等转换处理类

Syndication 存放对于外部交互的WebAPI接口

AtomHandler.cs

AtomWriter.cs

CategoryWriter.cs

CommentHandler.cs

CommentRssWriter.cs

CommonRssWriter.cs

EntryCollectionHandler.cs

LinksWriter.cs

RecentCommentsRSS.cs

RssCategoryHandler.cs

RssCommentHandler.cs

RssHandler.cs

RSSLinksHandler.cs

RssWriter.cs

SiteCatalogOpmlWriter.cs

UrlManager 处理对blog虚拟目录下的请求处理

BlogStaticFileHandler.cs

HandlerConfiguration.cs

HttpForbiddenHandler.cs

HttpHandler.cs

PageHandlerFactory.cs

UrlHelper.cs 确定URL是否重写,并写入HttpContent中

UrlReWriteHandlerFactory.cs

UrlReWriteModule.cs

四、DotText.Search.分析

ConfigAnalyzer.cs

EntryData.cs

Indexer.cs

IndexManager.cs

IndexQueue.cs

QueryIndex.cs

Result.cs

ResultSet.cs

SearchConfiguration.cs

SearchEngineSchedule.cs

SearchLock.cs

Weighter.cs

五、Dottext.Web.ServiceAPI.

Security

BlogUser.cs

UsernameTokenManager.cs

Utility.cs

六、Admin

Resources

UserControls

WebUI

七、DottextWeb

AggSite

Controls

Images

Modules

CaptchaImage

Script

Services

Skins

UI

再来看看通过运行SQL脚本获得的数据库。不过基于本人项目是结合系统已有的数据库来做,所以我修改了脚本(主要是数据库创建sql行,在运行这些豫剧之前,请千万做好数据库的备份工作,我可不想你除了问题来投诉我),将需要加入的数据表和存储过程、视图等加入到自己的数据库中。通过多次揣摩,我整理了一份dottext blog数据库的数据关系说明,特此列在下面,以方便后面的阅读,说实话,不理解数据库中结构,阅读相关的数据库操作会有云遮雾照的感觉,也不知道如何扩充数据结构满足自己项目需求。大家注意的是我阅读的版本应该有博客园自己添加进去的表格和存储过程,但是我只知道blog_profile是新增的,其他的没有仔细阅读,希望大家补充相关说明。

blog_Config博客配置表

BlogID 唯一标示

UserName

Password

Email

Title

SubTitle

Skin 博客自己选择的皮肤

Application 应用程序,也就是唯一区分自己的目录区域,以后详细分析

Host 服务器,也就是主机名,可以进行多域名配置

Author 作者,一般可以是中文名

TimeZone

IsActive 是否有权限发表

[Language] 该博客的主要语言环境

ItemCount 后台列表的项目数

LastUpdated 最后一次发表时间,这个可能是为了某项任务方便的冗余字段

News 公告正文

SecondaryCss 补充的样式单,作者可以在系统之外提供适合自己的样式单

PostCount 发表文章的数量,包括评论等?

StoryCount 文章数量?

PingTrackCount 被pingback的次数

CommentCount 被评论的次数

IsAggregated 是否支持聚合到首页

Flag 个人配置值,这个值是PostConfig 枚举的组合值,决定发表一篇文章后的系统自动配置“动作”,如是否激活,是否允许评论等

SkinCssFile 样式单文件(有些模版允许在模版之外提供CSS)

BlogGroup 属于哪个博客群组,这个可以作为圈子的起始

RegisterTime 注册时间

IsMailNotify 是否允许邮件“骚扰”该博客

NotifyMail 邮件通知Email,注意,这个邮件同主要注册时候的Email不同用途

IsOnlyListTitle ???是否仅仅显示标题

BlogType (新增字段,用于区分博客的类型)

IsRecommend (新增字段,用于告诉是否推荐博客)

blog_Content 博客发表的文章、随笔、评论等

ID

Title 标题

DateAdded 添加的日期

SourceUrl 源地址,如果是发表,就为NULL,如果是评论之类的,就是评论者提自己提供的地址

PostType 发表的类型,具体以后补充

Author 作者

Email 联系Email

SourceName 姓名或者IP地址

BlogID 该内容属于哪一个博客

Description 简要描述

DateUpdated 更新时间

TitleUrl 标题的连接地址

Text 正文

ParentID 该内容是针对哪一个content实体来提出的

FeedBackCount 反馈计数器

PostConfig 发表的配置ID 1 表示评论, 93是原创发表,参见blog_config中的flag字段

EntryName ???

IsOriginal ???

blog_Comment_Audit !!!是作为备份使用的,删除的文章进入此表格,但是前提是通过系统的删除功能。

blog_Content_Audit ???

blog_EntryRate 博客文章的条目访问记录表,不过估计对系统消耗太大,没有提供

blog_EntryViewCount博客文章访问统计信息表

EntryID ID

BlogID 博客ID,,这两个字段创建了索引,所以一般情况下采用这两个字段做关联的查询效率应该不会很低

WebCount 通过web访问的次数

AggCount 聚合访问,通过RSS之类的访问。这两个是累计字段

WebLastUpdated 最后访问

AggLastUpdated 最后聚合访问

blog_Images博客系统管理的图片

ImageID 图片ID

Title 标题

CategoryID 类别,归类,往往是相册的ID

Width 宽

Height 高

[File] 文件名

Active 是否激活有效

BlogID 属于哪个博客

UploadTime 更新时间

blog_KeyWords自定义的给博客使用的关键字配置

KeyWordID 关键字ID

Word 单词

Text 文字

ReplaceFirstTimeOnly 是否第一次(在文章中的第一个单词)的时候被替换

OpenInNewWindow 新开窗口吗

Url 目标连接地址

Text 提示信息

BlogID 博客ID

CaseSensitive 大小写是否敏感

blog_LinkCategories类别表

CategoryID 类别ID

Title 标题

Active 是否激活

BlogID 属于哪个博客,-1表示这是属于系统分类

CategoryType ???这个字段告诉我们当前类别的类型,是连接分类、相册、还是系统的文章分类等。

Description 解释这个类别,或者相册

ParentID 属于哪一个的子对象

UpdateTime 更新时间

blog_Links 可访问的连接表,通过这个表来获取本站的可访问的博客文章

LinkID ID

Title 标题

Url 连结地址

Rss ???

Active 是否有效

CategoryID 属于哪一个类别,外键

BlogID 属于哪一个博客

PostID 文章的发表时候在blog_content中的ID

NewWindow 是否新开窗口

UpdateTime 最后更新时间

Blog_Log博客访问日志???

LogID 日志编号

Title 标题

Message 消息

UserName 用户名

Url 连结地址

ServerName 服务器名?

BlogID 博客ID

StartDate 开始时间

EndDate 结束时间

blog_MailNotify 邮件通知

ID

EntryID 哪一个文章

BlogID 哪一个博客

SendToBlogID 发送到拿一个博客

Email 正文内容

blog_Profile 这个是中国汉化者自己增加的表

blog_Referrals记录引用博客的地址的表

EntryID 那一篇文章

BlogID 博客

UrlID 唯一的连结地址以上3字段创建了索引

[Count] 累计访问次数

LastUpdated 最后访问

blog_Roles权限表

Roleid 权限ID

Name 名称

Description 描述

blog_ScheduledEvents这个好像是一个任务调度表?

blog_SkinControl博客模版控制字段

介绍了各个后台的对应用户控件的名称

id 控件编号

ControlName 控件名称

Control 控件ID

DefaultVisible 是否可见

blog_SkinControl_Config 控件配置表,决定每一个博客的界面元素是否可见

ControlID 哪一个控件

BlogID 博客

Visible 是否可见

Blog_urls存储连结地址

UrlID

url

blog_UsersInRoles博客所属的权利组别

ID

RoleID 规则,权限类别

UserID 博客

相关视图:

VIEW_ScheduleEvents 按照ID次序进行的调度事件

SiteCatalog 类型为6的站点的分类视图

Log_View 排序后的站点日志

blog_Content_View 排序后的系统中的blog

存储过程:

忽略,太多了,100多个.

以上包括了工程结构说明和数据库表格说明,大致了解以上可以帮助我们后面的阅读理解。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有