dede专题管理表结构如何优化?

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

核心思想:专题的构成

一个 DedeCMS 专题主要由以下几个部分组成:

dede 专题管理表
(图片来源网络,侵删)
  1. 专题本身:这是专题的“外壳”或“容器”,定义了专题的基本信息,如标题、描述、封面图等。
  2. :这是专题的“血肉”,即被选入专题的文章、图集等内容,这些内容本身仍然存放在各自的原有频道表中(如 dede_archives 文章表),专题只是通过一个关联表引用了它们。
  3. 专题栏目:这是专题的“骨架”,用于对专题内的内容进行分类和组织,形成层级结构。

核心数据库表详解

DedeCMS 的专题功能主要涉及以下几张核心数据表,我们以 DedeCMS V5.x / V6.x 版本为例进行说明。

dede_arctype (栏目表)

这张表是 所有频道(包括专题)的顶级分类表,专题本身在系统结构中被视为一个特殊的“顶级栏目”。

字段名 说明 备注
id 栏目ID,主键 每个专题的ID都记录在这里。
reid 父栏目ID 如果专题是顶级栏目,则 reid 为 0。
topid 顶级栏目ID 对于专题,topid 就是它自己的 id
typename 栏目名称 就存储在这里
typedir 栏目目录 专题的访问URL路径,如 /special/123/
isdefault 是否为默认栏目 专题通常为 0。
ishidden 是否隐藏 专题通常为 0。
corank 栏目权限 通常为 0。
description 栏目描述 专题的简介。
keywords 栏目关键词 专题的关键词。
templet 专题模板 指定该专题使用的模板文件。

小结dede_arctype 表定义了专题的基本信息和URL结构,你可以把它理解为专题的“档案卡”。

dede_special (专题主表)

这张表专门用来存储专题的 特有属性,是与 dede_arctype 表配合使用的。

dede 专题管理表
(图片来源网络,侵删)
字段名 说明 备注
id 专题ID,主键 dede_arctype 表中的 id 对应。
attr 专题属性 一个整数字段,用位运算表示专题的多种属性,
- 1: 允许评论
- 2: 专题封面
- 4: 专题模型
body 存放专题的详细介绍,支持HTML代码。
click 点击量 专题的点击次数。
notpost 禁止投稿 1表示禁止,0表示允许。
mid 会员ID 创建专题的管理员/会员ID。

小结dede_special 表存储了专题独有的、不在通用栏目表中的信息,如详细介绍、点击量等。

dede_specialtopic (专题内容关联表)

这是专题功能的核心表,它像一个“胶水”,将 专题 和 紧密地关联在一起。

字段名 说明 备注
tid 专题ID 关联到 dede_arctype 表的 id
arctypeid 栏目ID 这个字段非常关键! 它记录了内容所属的栏目ID。
id 内容ID 关联到具体内容表的ID,例如文章的 aid
addtime 添加时间 内容被添加到专题的时间戳。

重要说明

  • 这张表通过 tid 字段将内容归属到某个专题。
  • 通过 arctypeid 字段,系统可以知道这个内容原本属于哪个栏目,这对于在专题内按原栏目分类显示内容至关重要。
  • 通过 id 字段,系统可以定位到具体的内容记录。

dede_special_rank (专题栏目表)

这张表用于构建专题内部的 二级分类(专题栏目),实现专题内容的精细化管理。

dede 专题管理表
(图片来源网络,侵删)
字段名 说明 备注
id 专题栏目ID,主键
tid 所属专题ID 关联到 dede_arctype 表的 id
reid 父栏目ID 用于构建专题栏目的层级结构,0表示顶级专题栏目。
typename 专题栏目名称 专题内部的分类名称,如“行业动态”、“技术分享”。
typedir 专题栏目目录 专题栏目在专题内部的URL路径。
ishidden 是否隐藏 1为隐藏,0为显示。

小结dede_special_rank 表实现了专题内部的“文件夹”结构,让内容可以分门别类地组织。


表之间的关系与数据流程

为了更好地理解,我们用一个流程图来表示这些表之间的关系:

+-----------------+      +-------------------+
|  dede_arctype   |      |    dede_special    |
| (专题档案卡)    |      |   (专题特有属性)  |
|-----------------|      |-------------------|
| id (专题ID)     |----->| id (专题ID)       |
| typename (标题)  |      | attr (属性)       |
| typedir (URL)   |      | body (介绍)       |
| description     |      | ...               |
| ...             |      +-------------------+
+-----------------+
       | (1对1关系)
       |
       | (1对多关系)
       v
+---------------------------------+
|      dede_specialtopic          |
|    (专题与内容的“胶水”表)        |
|---------------------------------|
| tid (专题ID)                    |
| arctypeid (原栏目ID)            |  <-- 指向 dede_arctype (原栏目)
| id (内容ID,如文章aid)           |  <-- 指向 dede_archives (文章内容)
| addtime                         |
+---------------------------------+
       |
       | (1对多关系)
       v
+-----------------+      +-------------------+
| dede_archives   |      | dede_special_rank  |
| (文章/内容表)   |      |  (专题内部栏目表)  |
|-----------------|      |-------------------|
| aid (文章ID)    |<-----| id (专题栏目ID)    |(标题)    |      | tid (所属专题ID)   |
| typeid (栏目ID) |      | typename (分类名)  |
| ...             |      | ...               |
+-----------------+      +-------------------+

数据流程示例:

  1. 创建专题

    • 在后台创建一个名为“前端技术”的专题。
    • 系统会在 dede_arctype 表中插入一条记录,typename 为“前端技术”,typedir/special/100/
    • 系统会在 dede_special 表中插入一条对应的记录,id 为 100。
  2. 到专题

    • 你选择了一篇 ID 为 55 的文章(在 dede_archives 表中)和 ID 为 200 的图集(在 dede_addonimages 表中)。
    • 你将它们添加到“前端技术”专题(ID 为 100)中。
    • 系统会在 dede_specialtopic 表中插入两条记录:
      • tid=100, arctypeid=5 (假设文章原属栏目ID为5), id=55
      • tid=100, arctypeid=6 (假设图集原属栏目ID为6), id=200
  3. 在专题内部分类

    • 你想在“前端技术”专题下创建两个子分类:“JavaScript”和“CSS”。
    • 系统会在 dede_special_rank 表中插入两条记录:
      • tid=100, reid=0, typename="JavaScript"
      • tid=100, reid=0, typename="CSS"
    • 你可以将文章55移动到“JavaScript”分类下(这通常通过后台操作完成,会更新 dede_specialtopic 表中的相关记录或增加一个 rankid 字段来关联,具体取决于版本实现)。

功能 涉及核心表 作用
专题基本信息 dede_arctype 定义专题的名称、URL、描述等基础信息。
专题特有属性 dede_special 存放专题的详细介绍、点击量等独有数据。
专题内部分类 dede_special_rank 在专题内部建立二级分类,方便内容组织。

理解这几张表的结构和关系,对于二次开发、数据迁移或排查专题相关的bug都至关重要,当你需要修改专题模板、获取专题内容列表时,最终的SQL查询几乎都会围绕这几张表进行关联查询。

-- 展开阅读全文 --
头像
织梦文章点击数标签
« 上一篇 04-18
织梦后台用户名如何重置?
下一篇 » 04-18

相关文章

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

目录[+]