dede arctiny是什么?如何使用?

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

arctiny 是什么?

arctiny“Article Tiny” 的缩写,中文可以理解为 “文章精简表”“文章摘要表”

dedecms dede arctiny
(图片来源网络,侵删)

它不是一个独立的文件,而是 Dedecms 数据库中的一张核心数据表,表名通常为 dede_arctinydede_ 是默认的前缀,可能因安装时设置而不同)。

核心定位: 这张表是 文章数据的“索引”或“元数据”表,它不存储文章的完整内容,而是存储了每篇文章最关键、最精简的信息,用于快速检索和显示。


dede_arctiny 表的主要字段

这张表的结构非常精简,但每个字段都有其特定用途,以下是它的主要字段及其说明:

字段名 数据类型 说明
id mediumint(8) unsigned 主键,自增ID,每篇文章的唯一标识符。
typeid smallint(5) unsigned 栏目ID,文章所属的栏目。
typeid2 smallint(5) unsigned 副栏目ID,支持文章同时属于多个栏目。
arcrank tinyint(1) unsigned 文档状态-1为待审核,0为正常,1为推荐/特殊文档,2为普通文档,4为草稿。
channel smallint(5) unsigned 频道类型,标识文章属于哪个频道(如普通文章、图集、软件等),对应 dede_arctype 表。
senddate int(10) unsigned 发布时间(时间戳),文章提交或发布的时间。
sortrank int(10) unsigned 文章排序权重,数字越大,排序越靠前,常用于首页、列表页的排序。
mid smallint(8) unsigned 会员ID,发布文章的会员/管理员ID。
click int(10) unsigned 点击次数,记录文章的点击量。
ismake smallint(6) 是否生成静态HTML1为已生成,0为未生成。
money smallint(5) unsigned 售价,用于付费文档。
filename varchar(120) 文件名,生成静态文件时的文件名,如 html
dutyadmin varchar(30) 责任编辑,负责该文章编辑的管理员用户名。
description varchar(255) 文章摘要,文章的简短描述,常用于列表页和搜索引擎摘要。
keywords varchar(255) ,文章的关键词,用于SEO和标签云。
templet varchar(60) 自定义模板,可以为单篇文章指定独立的模板文件。
adminid` smallint(5) unsigned 管理员ID,最后修改该文章的管理员ID。
mtype` smallint(1) 自定义分类,用于扩展文章分类。
weight` | smallint(5) unsigned | 权重,与 sortrank 类似,用于更灵活的排序。

arctiny 的核心作用与工作原理

理解 arctiny 的作用,就理解了 Dedecms 性能优化的一个关键点。

dedecms dede arctiny
(图片来源网络,侵删)

1 作用一:作为高速索引,提升性能

想象一下,如果你的首页要显示10篇文章,如果每次都去查询包含几万甚至几十万字符的 dede_addonarticle (文章正文表),数据库压力会非常大,页面加载也会非常慢。

arctiny 表只存储了文章的ID、标题、点击数等几十个字节的核心信息,当 Dedecms 需要生成首页、列表页时,它会:

  1. 先查询 dede_arctiny:根据栏目ID、排序规则等条件,快速筛选出符合要求的文章ID列表,这个查询非常快,因为数据量小且字段少。
  2. 再根据ID去关联查询其他表
    • 如果只需要显示标题和摘要,可能直接从 arctiny 表里就拿到了。
    • 如果需要显示正文,则用这些ID去 dede_addonarticle 表里查询具体内容。
    • 如果需要显示栏目信息,则用 typeid 去栏目表 dede_arctype 里查询。

一句话总结:arctiny 就像一个图书馆的“图书索引卡片”,你先通过卡片快速找到书的编号,然后再去书架上找到那本厚厚的书。

2 作用二:统一数据入口,简化逻辑

Dedecms 的文章数据分布在多个表中:

dedecms dede arctiny
(图片来源网络,侵删)
  • dede_archives: 存放文章的通用信息(标题、作者、发布时间等)。
  • dede_arctiny: 存放精简的索引信息。
  • dede_addonarticle: 存放文章的正文内容(如果是普通文章)。
  • dede_arcclick: 存放点击记录。
  • dede_taglist: 存放标签关联。

arctiny 表通过 id 这个主键,将这些分散的表紧密地联系在一起,这使得系统在处理文章时,逻辑更加清晰和统一。


arctiny 与其他核心表的关系

表名 全称/说明 arctiny 的关系
dede_archives 文章主表 一对一关系arctiny.id 对应 archives.idarchives 存放比 arctiny 更全但非正文的通用信息。
dede_addonarticle 文章附加表(正文) 一对一关系arctiny.id 对应 aid,存放文章的详细内容,如 body 字段。
dede_arctype 栏目表 一对多关系arctiny.typeid 对应 arctype.id,一个栏目下可以有无数篇文章。
dede_taglist 标签表 多对多关系,通过 arctiny.id 来建立文章与标签的关联。

实际应用场景与开发建议

1 在模板中调用

虽然模板标签如 {dede:arclist} 最终会生成复杂的SQL查询,但它的底层逻辑就是基于 arctiny 表来获取文章列表的。

{dede:arclist typeid='1' row='10' titlelen='30'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:description function='cn_substr(@me,80)'/]...</span>
    </li>
{/dede:arclist}
  • [field:title/],可能来自 archives 表。
  • [field:description/]:直接来自 arctiny.description 字段。
  • [field:arcurl/]:链接,根据 arctiny.idarctiny.filename 生成。

2 在二次开发中(PHP)

如果你需要写一个自定义的PHP文件来获取文章列表,最佳实践是模仿Dede的核心逻辑,优先使用 arctiny 表。

// 伪代码示例
// 1. 连接数据库
$db = new DbConnector();
// 2. 从 arctiny 表中查询文章ID和基本信息
$sql = "SELECT id, typeid, title, description, senddate FROM dede_arctiny 
        WHERE typeid IN (1, 2) AND arcrank = 0 
        ORDER BY sortrank DESC 
        LIMIT 10";
$result = $db->query($sql);
$articles = [];
while ($row = $db->fetchArray($result)) {
    // 3. 根据ID去其他表获取更多信息(如正文)
    // $article_body = getArticleBodyById($row['id']); 
    $articles[] = $row;
}
// 4. 输出或处理 $articles 数组
print_r($articles);

3 常见问题排查

  • 为什么新发布的文章在首页/列表页不显示?

    • 检查 dede_arctiny 表中该文章的 arcrank 字段是否为 0(正常状态),如果为 -1,说明文章待审核。
    • 检查 ismake 字段是否为 1,虽然动态页面不受此影响,但静态生成会。
    • 检查 typeid 是否正确。
  • 为什么点击数不增加?

    • 检查 dede_arctiny 表中该文章的 click 字段,以及点击记录表 dede_arcclick 是否有对应记录。
  • 网站更新/生成后,内容还是旧的?

    • 这通常是因为 dede_arctiny 表中的数据没有正确更新,可以尝试在后台“更新系统缓存”或“一键更新网站”来修复数据一致性。

arctiny 是 Dedecms 的 “数据心脏”“性能加速器”,它通过精简的数据结构,为整个系统提供了快速、高效的索引服务,理解了 arctiny,你就能更深刻地理解 Dedecms 的数据流转机制,无论是进行模板开发、二次编程还是日常的网站维护,都会得心应手。

-- 展开阅读全文 --
头像
dede channel content
« 上一篇 2025-12-02
C语言createemptylist如何创建空列表?
下一篇 » 2025-12-02

相关文章

取消
微信二维码
支付宝二维码

目录[+]