文档模型设计
前台所显示的 任何类型的文章(资讯、投票、下载、帖子)均可以看成一个文档,而他们的类型则对应各个文档扩展模型
- 数据上,文档由两部分组成:
- 文档基础数据
- 文档扩展数据
- 表结构上,扩展文档模型是继承基础文档模型的,且两张表以id字段为关联。
- 扩展文档模型的表名为:表前缀document扩展名。如在OT里,定义成onethink_document_article。
文档基础数据
所有文章都有统一的基础数据,如:唯一编号、唯一标识、标题……。
文档扩展数据
扩展数据是每个文档所在类型的特有数据,如下载模型里有:详细内容、附件信息、下载次数等; 而文章模型里有文章详细内容。
文档类型
不同于文档模型控制文档的数据,文档类型(think_document表里的type字段)仅用于标示这个文档是什么,方便前台展示(如:目录就只展示其标题)。
目前规定文档类型有:目录,主题,段落
由于文档可以有子文档,所以添加子文档时规则如下:
- 目录下面可以添加任意类型
- 主题下面只能添加段落
- 段落下面不能添加任何类型的文档
文档模型的优缺点
优点:
- 由于所有文档都共用一张基础表,所以对于实现
全站搜索
,文档统计、分析
之类的功能就很方便。 - 基础字段公用,减少设计表时字段的重复
- 扩展新的文档模型非常方便
缺点:同样由于数据的集中,在较大的站,基础表的数据量会比较大,所以需要适时地优化。