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

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

关键词与标签
| 字段名 | 类型 | 说明 |
|---|---|---|
keywords |
varchar(255) |
,多个关键词用英文逗号 分隔,用于SEO和站内相关文章推荐。 |
重要补充说明
存储在哪里?
这是一个非常常见的误区。dede_archives 表本身并不存储文章的完整内容(如正文)。
存储在另一个核心表 dede_addonarticle 中。
- 关系:
dede_archives表通过id字段与dede_addonarticle表的aid字段进行关联。 - 工作流程:
- 你在后台发布文章,点击“保存”。
- 系统首先在
dede_archives表中插入一条记录,包含标题、作者、时间等所有元数据,并得到一个自增的id(123)。 - 系统将你输入的正文内容存入
dede_addonarticle表中,并将aid字段设置为123。
这种设计是为了优化数据库结构,将核心元数据和庞大的内容正文分离,提高查询效率。
与其他核心表的关系
dede_archives 不是孤立存在的,它与其他表紧密协作:
dede_arctype(栏目表): 通过typeid字段关联,决定了文章属于哪个栏目,并继承了栏目的模板、SEO等设置。dede_addonarticle(文章内容表): 通过id和aid关联,存储文章正文。dede_taglist(标签表): 如果文章设置了关键词,系统会自动将关键词解析为标签,并与文章ID关联,方便标签云和标签页面的实现。dede_member(会员表): 通过mid字段关联,记录文章发布者。
SQL 操作示例
假设你的表前缀是 dede_。

查询指定栏目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 中。
