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