织梦CMS的数据库设计遵循其“频道模型”和“自定义模型”的核心思想,因此表与表之间关联紧密,理解了这一点,就能看懂大部分表的作用。

(图片来源网络,侵删)
核心思想:模型驱动
在深入了解表结构之前,必须理解织梦的“模型”概念:
- 主表 (主表):存储文章/内容的基本信息,如标题、发布时间、作者、来源等,每个内容类型(如文章、图集、软件)都有一个独立的主表。
- 附加表 (附加表/副表)的扩展信息,如文章内容、图集的图片列表、软件的下载地址等,附加表与主表通过
aid字段关联。 - 单页模型表:对于不需要列表页的单页内容(如“关于我们”、“联系我们”),它没有主表和附加表的区分,所有信息都存储在一张独立的表中。
这种设计使得织梦非常灵活,可以通过后台创建不同的内容模型(如“产品”、“招聘”等),系统会自动创建对应的主表和附加表。
核心数据表详解
以下是最重要和最常用的数据表,我将它们分为几类进行说明。
核心系统表
这些表是织梦CMS运行的基础,与内容发布和管理直接相关。

(图片来源网络,侵删)
| 表名 | 中文名称 | 主要作用 | 关键字段说明 |
|---|---|---|---|
dede_archives |
文章主表 | 类型的总入口,存储所有频道模型(文章、图集、软件等)的公共信息。 | id (主键, 内容ID), typeid (栏目ID), arcrank (审核状态), title (标题), pubdate (发布时间), click (点击量) |
dede_arctiny |
文章微表 | 用于首页、列表页等需要快速调取内容摘要信息的地方,性能优化。 | id, typeid, arcrank, channel, addtime |
dede_addonarticle |
文章附加表 | 存储文章模型特有的内容,如文章正文。 | aid (关联dede_archives.id), body (文章内容) |
dede_channeltype |
频道类型表 | 定义了系统中所有可用的内容模型(频道),文章模型、图集模型、软件模型等。 | id (模型ID), nid (节点ID), typename (模型名称), addtable (对应的附加表名) |
dede_arctype |
栏目表 | 存储网站的所有栏目(分类)信息。 | id (栏目ID), reid (父栏目ID), typename (栏目名称), issystem (是否系统栏目), channeltype (栏目允许的内容模型) |
dede_admin |
管理员表 | 存储后台管理员账户信息。 | id, usertype, userid, pwd (密码), uname (用户名) |
dede_arcmulti |
多图模型附加表 | 图集内容的存储表。 | aid, body (图集内容,通常包含图片描述和路径) |
dede_soft |
软件模型附加表 | 软件内容的存储表。 | aid, softtype (软件类型), language (语言), softsize (大小), officialUrl (官方网址), introduce (软件介绍), body (详细说明) |
dede_download |
下载模型附加表 | 下载内容的存储表。 | aid, filetype (文件类型), filesize (文件大小), downloadurl (下载地址), introduce (介绍) |
dede_member |
会员表 | 存储网站会员信息。 | mid (会员ID), mtype (会员类型), userid (用户名), pwd (密码), uname (昵称) |
dede_member_space |
会员空间表 | 存储会员空间的个性化信息,如头像、简介等。 | mid (关联dede_member.mid), spacename (空间名称), sign (个性签名) |
关联关系图
理解表之间的关联是关键,以下是核心内容表的关联关系:
[栏目表] dede_arctype
|
| (typeid)
V
[文章主表] dede_archives <---- (channel) ---- [频道类型表] dede_channeltype
| |
| (id) | (addtable)
V V
[附加表] (如 dede_addonarticle, dede_arcmulti, dede_soft...)
解读:
- 一个栏目 (
dede_arctype) 可以包含多篇文章 (dede_archives),通过typeid关联。 - 一篇文章 (
dede_archives) 属于一个内容模型(频道),这个模型信息由dede_channeltype定义。 dede_archives表中的channel字段存储的是dede_channeltype表中的id。dede_channeltype表中的addtable字段记录了该模型对应的附加表名(文章模型对应dede_addonarticle)。- 通过
dede_archives中的id去对应的附加表中查找具体的内容(如正文)。
其他重要功能表
| 表名 | 中文名称 | 主要作用 |
|---|---|---|
dede_feedback |
评论表 | 存储用户对内容的评论。 |
dede_tagindex / dede_taglist |
标签索引表/列表表 | 用于实现标签功能,存储标签与内容的关联关系。 |
dede_search_keywords |
搜索关键词表 | 记录用户搜索过的关键词,可用于热门搜索推荐。 |
dede_flink |
友情链接表 | 存储友情链接信息。 |
dede_admintype |
管理员类型表 | 定义后台管理员的权限组。 |
dede_purview |
权限表 | 定义具体的操作权限点。 |
dede_config |
系统配置表 | 存储网站的全局配置信息,如网站名称、版权信息等。 |
dede_homepageset |
首页配置表 | 存储首页显示的相关配置,如头条推荐、频道推荐等。 |
实际应用场景举例
场景1:获取一篇“文章”的完整信息
假设你要在前台显示一篇ID为 10 的文章。
-
从
dede_archives表中获取基本信息:SELECT id, typeid, title, pubdate, click FROM dede_archives WHERE id = 10;
假设查询结果为:
id=10, typeid=5, title='你好,世界', pubdate=... -
根据
id=10从dede_addonarticle表中获取正文:SELECT body FROM dede_addonarticle WHERE aid = 10;
假设查询结果为:
body='<p>这是一篇文章的正文内容...</p>' -
根据
typeid=5从dede_arctype表中获取栏目信息:SELECT typename, typename FROM dede_arctype WHERE id = 5;
假设查询结果为:
typename='新闻动态'
你将组合出完整的文章信息为“你好,世界”,属于“新闻动态”栏目,发布于...,正文为“这是一篇文章的正文内容...”。
场景2:获取某个栏目下的所有文章列表
假设你要获取栏目ID为 5 下的所有已审核文章。
SELECT a.id, a.title, a.pubdate, a.click, t.typename FROM dede_archives AS a LEFT JOIN dede_arctype AS t ON a.typeid = t.id WHERE a.typeid = 5 AND a.arcrank = 0 ORDER BY a.pubdate DESC;
a.arcrank = 0表示已审核状态。LEFT JOIN用于即使文章所属栏目被删除(不推荐),也能显示文章。ORDER BY a.pubdate DESC按发布时间降序排列。
注意事项
- 表前缀:默认表前缀是
dede_,但在安装时可以修改,如果你的表前缀是cms_,那么所有表名都需要相应修改。 - 直接操作数据库的风险:直接在数据库中进行
DELETE或UPDATE操作非常危险,容易导致数据不一致,特别是删除文章时,最好使用织梦后台的“删除内容”功能,它会同时删除主表、附加表以及相关的评论、标签等数据。 - 版本差异:不同版本的织梦CMS(如DedeCMS 5.7、DedeCMS V57、V57_SP1等),其数据库表结构可能存在细微差异,但核心表和逻辑基本保持一致。
- 自定义模型:如果你在后台创建了自定义模型(如“产品”),系统会自动创建两张新表:一张主表(如
dede_archives不变)和一张附加表(如dede_addonproduct)。
希望这份详细的解析能帮助你全面了解织梦CMS的数据库表结构!
