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

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 织梦建站 正文

dede_archives 是什么?

dede_archives 是织梦DedeCms数据库中存储文章核心信息的主表

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

你可以把它想象成一个巨大的图书馆的总目录卡片,每当你发布一篇文章,系统就会在这个表里创建一条新记录,用来记录这篇文章最基本、最重要的元数据。

它的表名前缀 dede_ 是DedeCms的默认前缀,如果你在安装时修改了前缀,那么这个表的名称也会相应改变(mycms_archives)。


表结构详解(字段说明)

dede_archives 表包含的字段非常多,下面我将它们按照功能进行分类,并解释每个字段的用途。

核心标识与ID

字段名 类型 说明
id int(11) 文章的唯一ID,主键,自增,这是文章在系统内的“身份证号”,所有关联操作都依赖它。
typeid int(11) 所属栏目ID,对应 dede_arctype 表中的 id 字段,用于确定文章属于哪个栏目。
typeid2 int(11) 副栏目ID,用于文章同时属于两个栏目的情况。
sortrank int(11) 文章排序权重,数值越大,文章在列表中越靠前,这是控制首页、栏目页文章顺序的最主要字段。

文章基本信息

字段名 类型 说明
arcrank tinyint(1) 文章状态(审核级别),这是一个非常重要的字段,用于控制文章是否可见。
- 0: 默认,已审核,正常显示。
- -1: 未审核,前台不显示。
- -2: 会员投稿,需要审核后才能显示。
- >0: 自定义审核级别,需要相应权限才能查看。
click int(11) 点击次数,记录文章被点击的次数,通常用于“热门文章”等场景。
ismake smallint(6) 是否生成静态文件
- 1: 是,已生成HTML文件。
- 0: 否,未生成或为动态。
money decimal(10,2) 售价,用于付费阅读或下载的文档。
filename varchar(80) 生成的静态文件名html,如果为空,则表示动态链接。

内容与摘要

| 字段名 | 类型 | 说明 | | :--- | :--- | :--- | | varchar(255) | ,这是SEO和用户体验的关键。 | | shorttitle | varchar(255) | /副标题,可以在一些模板中调用,用于精简显示。 | | color | varchar(10) | 标题颜色,用于设置文章标题在页面上的显示颜色,如 <span style='color:red;'>标题</span>。 | | writer | varchar(30) | 作者,可以是后台设置的默认作者,也可以是手动填写的。 | | source | varchar(50) | 文章来源,如“本站原创”、“某某网”等。 | | litpic | varchar(100) | 文章缩略图/封面图,存储的是图片的路径,如 /uploads/230101/1-2301011F3020258.jpg。 | | pubdate | int(10) | 发布时间,Unix时间戳格式,是按时间排序和归档的关键。 | | senddate | int(10) | 录入时间,同样是Unix时间戳,记录文章被创建的时间。 | | mid | int(10) | 发布者会员ID,对应 dede_member 表中的 mid,记录是哪个管理员或会员发布的。 | | description | text | 简介**,通常用于列表页的摘要显示和SEO的description标签。 |

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

关键词与标签

字段名 类型 说明
keywords varchar(255) ,多个关键词用英文逗号 分隔,用于SEO和站内相关文章推荐。

重要补充说明

存储在哪里?

这是一个非常常见的误区。dede_archives 表本身并不存储文章的完整内容(如正文)。 存储在另一个核心表 dede_addonarticle 中。

  • 关系dede_archives 表通过 id 字段与 dede_addonarticle 表的 aid 字段进行关联。
  • 工作流程
    1. 你在后台发布文章,点击“保存”。
    2. 系统首先在 dede_archives 表中插入一条记录,包含标题、作者、时间等所有元数据,并得到一个自增的 id123)。
    3. 系统将你输入的正文内容存入 dede_addonarticle 表中,并将 aid 字段设置为 123

这种设计是为了优化数据库结构,将核心元数据和庞大的内容正文分离,提高查询效率。

与其他核心表的关系

dede_archives 不是孤立存在的,它与其他表紧密协作:

  • dede_arctype (栏目表): 通过 typeid 字段关联,决定了文章属于哪个栏目,并继承了栏目的模板、SEO等设置。
  • dede_addonarticle (文章内容表): 通过 idaid 关联,存储文章正文。
  • dede_taglist (标签表): 如果文章设置了关键词,系统会自动将关键词解析为标签,并与文章ID关联,方便标签云和标签页面的实现。
  • dede_member (会员表): 通过 mid 字段关联,记录文章发布者。

SQL 操作示例

假设你的表前缀是 dede_

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

查询指定栏目ID为 5 的所有文章标题和发布时间

SELECT id, title, pubdate FROM `dede_archives` WHERE typeid = 5 ORDER BY pubdate DESC;

包含“织梦”且已审核的文章

SELECT id, title, description FROM `dede_archives` 
WHERE title LIKE '%织梦%' AND arcrank = 0;

将某篇文章(ID为 100)的状态设置为“未审核”

UPDATE `dede_archives` SET arcrank = -1 WHERE id = 100;

统计每个栏目下的文章数量

这是一个非常实用的查询,常用于后台统计。

SELECT 
    t.id, 
    t.typename, 
    COUNT(a.id) as article_count
FROM 
    `dede_arctype` as t
LEFT JOIN 
    `dede_archives` as a ON t.id = a.typeid
GROUP BY 
    t.id, t.typename
ORDER BY 
    article_count DESC;

注意:这里使用 LEFT JOIN 是为了即使某个栏目下没有文章,也能在结果中显示该栏目,文章数量为0。


dede_archives 是DedeCms文章系统的“大脑中枢”,要熟练掌握DedeCms的开发和二次开发,就必须深刻理解 dede_archives 表的结构和它与其他表的关系,记住它的核心作用是存储文章的元数据,而真正的正文内容则在 dede_addonarticle 中。

-- 展开阅读全文 --
头像
dede limit row无效怎么办?
« 上一篇 2025-12-17
long long int打印用%lld还是%I64d?
下一篇 » 2025-12-17
取消
微信二维码
支付宝二维码

目录[+]