织梦cms 数据库表

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

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

织梦cms 数据库表
(图片来源网络,侵删)

核心思想:模型驱动

在深入了解表结构之前,必须理解织梦的“模型”概念:

  1. 主表 (主表):存储文章/内容的基本信息,如标题、发布时间、作者、来源等,每个内容类型(如文章、图集、软件)都有一个独立的主表。
  2. 附加表 (附加表/副表)的扩展信息,如文章内容、图集的图片列表、软件的下载地址等,附加表与主表通过 aid 字段关联。
  3. 单页模型表:对于不需要列表页的单页内容(如“关于我们”、“联系我们”),它没有主表和附加表的区分,所有信息都存储在一张独立的表中。

这种设计使得织梦非常灵活,可以通过后台创建不同的内容模型(如“产品”、“招聘”等),系统会自动创建对应的主表和附加表。


核心数据表详解

以下是最重要和最常用的数据表,我将它们分为几类进行说明。

核心系统表

这些表是织梦CMS运行的基础,与内容发布和管理直接相关。

织梦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...)

解读:

  1. 一个栏目 (dede_arctype) 可以包含多篇文章 (dede_archives),通过 typeid 关联。
  2. 一篇文章 (dede_archives) 属于一个内容模型(频道),这个模型信息由 dede_channeltype 定义。
  3. dede_archives 表中的 channel 字段存储的是 dede_channeltype 表中的 id
  4. dede_channeltype 表中的 addtable 字段记录了该模型对应的附加表名(文章模型对应 dede_addonarticle)。
  5. 通过 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 的文章。

  1. dede_archives 表中获取基本信息

    SELECT id, typeid, title, pubdate, click FROM dede_archives WHERE id = 10;

    假设查询结果为:id=10, typeid=5, title='你好,世界', pubdate=...

  2. 根据 id=10dede_addonarticle 表中获取正文

    SELECT body FROM dede_addonarticle WHERE aid = 10;

    假设查询结果为:body='<p>这是一篇文章的正文内容...</p>'

  3. 根据 typeid=5dede_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 按发布时间降序排列。

注意事项

  1. 表前缀:默认表前缀是 dede_,但在安装时可以修改,如果你的表前缀是 cms_,那么所有表名都需要相应修改。
  2. 直接操作数据库的风险:直接在数据库中进行 DELETEUPDATE 操作非常危险,容易导致数据不一致,特别是删除文章时,最好使用织梦后台的“删除内容”功能,它会同时删除主表、附加表以及相关的评论、标签等数据。
  3. 版本差异:不同版本的织梦CMS(如DedeCMS 5.7、DedeCMS V57、V57_SP1等),其数据库表结构可能存在细微差异,但核心表和逻辑基本保持一致。
  4. 自定义模型:如果你在后台创建了自定义模型(如“产品”),系统会自动创建两张新表:一张主表(如dede_archives不变)和一张附加表(如dede_addonproduct)。

希望这份详细的解析能帮助你全面了解织梦CMS的数据库表结构!

-- 展开阅读全文 --
头像
dede后台留言板如何回复?
« 上一篇 今天
C语言properties是什么?
下一篇 » 今天

相关文章

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

目录[+]