OneThink1.0开发手册

OneThink系列开发手册在线版

文档模型设计

文档模型

前台所显示的 任何类型的文章(资讯、投票、下载、帖子)均可以看成一个文档,而他们的类型则对应各个文档扩展模型

  • 数据上,文档由两部分组成:

    1. 文档基础数据
    2. 文档扩展数据
  • 表结构上,扩展文档模型是继承基础文档模型的,且两张表以id字段为关联。

  • 扩展文档模型的表名为:表前缀_document_扩展名。如在OT里,定义成onethink_document_article。

文档基础数据

所有文章都有统一的基础数据,如:唯一编号、唯一标识、标题……。

文档扩展数据

扩展数据是每个文档所在类型的特有数据,如下载模型里有:详细内容、附件信息、下载次数等; 而文章模型里有文章详细内容。

文档类型

不同于文档模型控制文档的数据,文档类型(think_document表里的type字段)仅用于标示这个文档是什么,方便前台展示(如:目录就只展示其标题)。

目前规定文档类型有:目录主题段落

由于文档可以有子文档,所以添加子文档时规则如下:

  1. 目录下面可以添加任意类型
  2. 主题下面只能添加段落
  3. 段落下面不能添加任何类型的文档

文档模型的优缺点

优点:

  1. 由于所有文档都共用一张基础表,所以对于实现全站搜索文档统计、分析之类的功能就很方便。
  2. 基础字段公用,减少设计表时字段的重复
  3. 扩展新的文档模型非常方便

缺点:同样由于数据的集中,在较大的站,基础表的数据量会比较大,所以需要适时地优化。