织梦dede_archives表如何高效管理文章数据?

99ANYc3cd6
预计阅读时长 13 分钟
位置: 首页 DEDE建站 正文

dede_archives 是织梦CMS中最最重要的数据表,没有之一,它存储了网站所有文章(包括文章、图集、软件等所有文档模型)的核心元数据

织梦dede_archives
(图片来源网络,侵删)

可以把它想象成一个图书馆的图书总目录卡片,每一张卡片记录了图书的基本信息,比如书名、作者、分类、出版日期等,但卡片本身不包含书的全部内容。


dede_archives 表的主要作用

  1. 文章的“身份证”:每篇文章在 dede_archives 表中都有一条唯一的记录,通过 id 字段来标识。
  2. 存储核心信息:包含了文章最基本、最常用的信息,如标题、作者、发布时间、所属栏目、点击量等,这些信息在网站首页、列表页、文章页的模板中频繁调用。
  3. 性能优化:通过将核心信息和详细内容(存在 dede_addonarticle 等附加表)分离,查询列表页时只查询 dede_archives,可以大大减少数据库查询的数据量,提高页面加载速度。
  4. 统一管理入口:无论是文章、图集还是软件,它们的核心信息都统一存放在 dede_archives 中,方便系统进行统一的管理、排序和检索。

dede_archives 表的核心字段详解

以下是该表中最常用的一些字段及其说明:

字段名 中文含义 数据类型 说明
id 文章ID int(11) 主键,自增,每篇文章的唯一标识符,非常重要。
typeid 栏目ID int(11) 文章所属栏目的ID,关联到 dede_arctype 表。
typeid2 副栏目ID int(11) 文章可以同时属于一个主栏目和一个副栏目。
sortrank 排序权重 int(11) 文章的排序值。数值越小,排序越靠前,常用于“置顶”功能。
flag 特殊属性 char(20) 文章的标记,如 c(推荐)、h(头条)、p(图片)等,多个标记用逗号隔开。
ismake 是否生成 smallint(6) 1 表示已生成静态HTML,-1 表示未生成。
channel 模型ID int(11) 文档所属的模型ID。1 代表文章,2 代表图集,3 代表软件等。
arcrank 审核状态 smallint(6) 0 表示已审核(正常显示),-1 表示待审核(前台不显示)。
click 点击量 int(11) 文章的点击次数,系统会自动累加。
shorttitle varchar(255) 文章的简短标题,可用于列表页等空间有限的地方。
color 标题颜色 varchar(10) 的HTML颜色代码,如 #FF0000(红色)。
writer 作者 varchar(30) 文章的作者。
source 来源 varchar(50) 文章的来源,如“某某网”、“本站原创”等。
litpic 缩略图/封面 varchar(100) 文章的封面图或列表页显示的缩略图路径。
pubdate 发布时间 int(11) 文章的发布时间,以Unix时间戳格式存储。
senddate 录入时间 int(11) 文章被录入系统的时间,也是Unix时间戳。
mid 录入员ID int(11) 录入该文章的管理员ID,关联到 dede_admin 表。
keywords varchar(255) 文章的关键词,用于SEO和搜索。
lastpost 最后评论时间 int(11) 文章最后一条评论的时间戳。
scores 积分 int(11) 阅读该文章用户需要消耗或获得的积分。
goodpost 好评数 int(11) 文章的好评数量。
badpost 差评数 int(11) 文章的差评数量。
voteid 投票ID int(11) 关联的投票项目ID。
notpost 是否允许评论 smallint(6) 0 允许评论,1 不允许评论。
description 描述 text 摘要,常用于列表页的简介和SEO的meta description。
filename 自定义文件名 varchar(120) 文章静态化的自定义文件名,如 my-article.html

dede_archives 与其他表的关系

理解 dede_archives 的关键在于理解它与其他表的关联。

a. 与附加表(Addon表)的关系:一对多

这是织梦CMS的核心设计思想。dede_archives 存储所有文档的共性信息,而每种文档的则存储在各自的附加表中。

织梦dede_archives
(图片来源网络,侵删)
  • :存储在 dede_addonarticle 表中。

    • 关联字段:dede_archives.id = dede_addonarticle.aid
    • dede_addonarticle 表包含 body 字段,用来存放文章的详细内容(通过编辑器输入的HTML)。
  • :存储在 dede_addonimages 表中。

    • 关联字段:dede_archives.id = dede_addonimages.aid
    • 该表包含 imgurls 字段,用来存放图片的JSON数组信息。
  • :存储在 dede_addonsoft 表中。

    • 关联字段:dede_archives.id = dede_addonsoft.aid
    • 该表包含 softlinks(下载链接)、introduce(软件介绍)等字段。

如何获取一篇文章的完整信息? 当你需要显示一篇文章时,通常需要同时查询 dede_archives 和对应的附加表。

织梦dede_archives
(图片来源网络,侵删)

示例SQL查询(获取一篇ID为10的文章的所有信息):

SELECT a.*, b.body
FROM dede_archives AS a
LEFT JOIN dede_addonarticle AS b ON a.id = b.aid
WHERE a.id = 10;

b. 与栏目表 dede_arctype 的关系:多对一

  • dede_archives.typeid 对应 dede_arctype.id
  • 一篇文章属于一个栏目(一个主栏目),一个栏目下可以有多篇文章。
  • 这个关联用于在模板中调用栏目的名称、路径等信息,{dede:type}[field:typename/]{/dede:type}

在实际应用中的意义

  1. 模板开发

    • 在列表页(list_article.htm)中,你调用的 {field:title}{field:pubdate}{field:litpic} 等变量,都直接来源于 dede_archives 表。
    • 在文章页(article_article.htm)中,{dede:field.title/} 来自 dede_archives,而 {dede:field.body/} 则来自对应的附加表(如 dede_addonarticle)。
  2. 二次开发

    • 如果你需要开发一个新的功能,热门文章排行榜”,你只需要对 dede_archives 表按 click 字段进行排序即可。
    • 如果你需要修改文章的发布流程,可能需要同时操作 dede_archives 和其对应的附加表。
  3. 数据迁移与备份

    • 备份网站数据时,dede_archives 表是必须备份的核心表之一。
    • 在进行数据迁移时,确保 id 的关联关系正确无误至关重要。

dede_archives 是织梦CMS的基石,它像一个中央索引,记录了所有文章的“户口信息”,理解了它的结构和与其他表的关系,你就掌握了织梦CMS数据管理的核心,无论是进行模板修改、功能开发还是日常维护,都会变得得心应手,记住这个核心思想:核心信息在 archivesaddon

-- 展开阅读全文 --
头像
织梦用栏目组做专题专栏
« 上一篇 01-04
linux c语言 mkdir
下一篇 » 01-05
取消
微信二维码
支付宝二维码

目录[+]