首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

dedecms 主表附加表

DedeCMS(织梦内容管理系统)是一款基于PHP+MySQL架构的网站内容管理系统。它主要用于搭建各种类型的网站,如新闻网站、企业网站、个人博客等。在DedeCMS中,主表和附加表是其数据库设计的核心部分。

基础概念

  1. 主表(Main Table)
    • 主表通常存储网站的核心数据,如文章、页面等。
    • 例如,dede_archives 表存储了文章的基本信息,如标题、作者、发布时间等。
  • 附加表(Additional Table)
    • 附加表用于存储与主表相关联的扩展信息。
    • 例如,dede_addonarticle 表存储了文章的扩展信息,如文章摘要、关键词等。

相关优势

  • 数据分离:通过主表和附加表的设计,可以将核心数据和扩展数据分开存储,提高数据库的性能和可维护性。
  • 灵活性:附加表可以根据需要添加或删除,使得系统更加灵活,能够适应不同的业务需求。
  • 扩展性:通过附加表,可以方便地扩展系统的功能,而不需要对主表进行大规模的修改。

类型

  • 一对一关系:一个主表记录对应一个附加表记录。例如,一篇文章对应一个文章摘要。
  • 一对多关系:一个主表记录对应多个附加表记录。例如,一个分类对应多个文章。

应用场景

  • 新闻网站:主表存储新闻的基本信息,附加表存储新闻的详细内容、图片、视频等。
  • 企业网站:主表存储企业的基本信息,附加表存储企业的产品信息、联系方式等。
  • 个人博客:主表存储博客文章的基本信息,附加表存储文章的分类、标签等。

常见问题及解决方法

问题1:为什么在添加新字段时需要使用附加表?

原因:主表通常存储核心数据,频繁修改会影响数据库的性能和稳定性。附加表用于存储扩展信息,可以灵活地添加新字段。

解决方法

代码语言:txt
复制
-- 创建附加表
CREATE TABLE `dede_addonarticle` (
  `aid` int(11) NOT NULL DEFAULT '0',
  `description` text NOT NULL,
  `keywords` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`aid`)
);

问题2:如何关联主表和附加表?

原因:通过外键关联主表和附加表,确保数据的一致性和完整性。

解决方法

代码语言:txt
复制
-- 在附加表中添加外键
ALTER TABLE `dede_addonarticle` ADD CONSTRAINT `fk_dede_archives` FOREIGN KEY (`aid`) REFERENCES `dede_archives` (`id`);

问题3:如何查询主表和附加表的数据?

原因:通过JOIN操作可以方便地查询主表和附加表的数据。

解决方法

代码语言:txt
复制
-- 查询文章及其摘要
SELECT a.title, a.author, a.pubdate, aa.description
FROM `dede_archives` a
LEFT JOIN `dede_addonarticle` aa ON a.id = aa.aid;

参考链接

通过以上信息,您可以更好地理解DedeCMS中主表和附加表的设计原理及其应用场景,并解决相关的技术问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

什么是主表?什么是从表?

切记切记: 关联关系的话,比如user表(用户)id name把id设为主键与文章表article id name user_id把user_id设为索引外键,关联关系的话,是用户表的id与文章表的user_id...因为用户表的id是主表的主键id。从表的user_id是外键啊.而关联关系是主表的主键id与从表的外键id相关联的啊 主从表,从表数据依赖于主表,一般最后查询数据时把主表与从表进行关联查询。...主表可用于存储主要信息,如客户资料(客户编号,客户名称,客户公司,客户单位等),从表用来存储客户扩展信息(客户订单信息,客户地址信息,客户联系方式信息等)。...主表: 在数据库中建立的表格即Table,其中存在主键(primary key)用于与其它表相关联,并且作为在主表中的唯一性标识。...从表: 以主表的主键(primary key)值为外键 (Foreign Key)的表,可以通过外键与主表进行关联查询。从表与主表通过外键进行关联查询。 关系及用法概述

2.5K30
  • 以关联表中的count计数作为主表的排序依据

    由于数据库设计时,将tag标签独立,并没有作为article文章表的一个字段。通过一个中间关联表(art_tag)来对应文章表(article)和tag表(tags)之间的映射关系。...通过查询tags表中的数据,以art_tag表中的映射数量进行排序操作。 先来看下三个表结构涉及的字段。...1、文章表(article):文章ID(id) 2、标签表(tags):标签ID(id)、标签名(tag_name) 3、中间表(art_tag):序号(id)、文章ID(article_id)、标签ID...业务目标即:对art_tag表中的tags_id进行count计数作为tags表查询的排序依据。...这其中牵扯到两次查询,首先查询tags表,第二是需要对art_tag表中对应的tags_id做count查询。

    89610

    DEDECMS织梦文章列表标题重复显示解决方案

    DEDECMS织梦文章列表标题重复显示解决方案:今天还原数据库后,浏览网页http://www.mimisucai.com/a/wangluobiancheng/list_7_2.html发现列表页标题有重复...这不是列 表页标题调用规则。我看了我的文章后台,根本没有重复的,于是我怀疑是数据库出了问题。检查了一下数据库,发现我的数据库文章篇数确实是我实际篇数的差不多两倍!...有人说,可以进入织梦后台-系统-SQL命令行工具清空三张表dede_addonarticle 文章附加表dede_archives 文档主表dede_arctiny 文档微表DELETE FROM dede_addonarticle...看到dede_addonarticle这样前缀的文件非常多, 可以肯定是这里重复了,于是我查看到数据表dede_addonarticle_901_b464f4bc4ffa604f.txt 在50行与dede_addonarticle...删除其中一个数据表文章内容,这里我删除31行数据。然后登陆织梦,系统,数据库还原,然后登陆织梦,生成,更新文章所在栏目HTML,最后回到文章列表页,标题重复显示文章只要一条,完美解决问题!

    4.5K00

    Excel应用实践08:从主表中将满足条件的数据分别复制到其他多个工作表中

    如下图1所示的工作表,在主工作表MASTER中存放着从数据库下载的全部数据。...现在,要根据列E中的数据将前12列的数据分别复制到其他工作表中,其中,列E中数据开头两位数字是61的单元格所在行前12列数据复制到工作表61中,开头数字是62的单元格所在行前12列数据复制到工作表62中...,同样,开头数字是63的复制到工作表63中,开头数字是64或65的复制到工作表64_65中,开头数字是68的复制到工作表68中。...[A2].Resize(UBound(Data61, 1),12) = Data61 End With '更新工作表62中的数据 WithSheets("62").Cells(1..., 64, "已完成" End Sub 运行代码后,工作表61中的数据如下图2所示。 ? 图2 代码并不难,很实用!在代码中,我已经给出了一些注释,有助于对代码的理解。

    5.1K30

    保存一下dedecms数据库表和字段说明,方便日后查询

    玩dedecms有一段时间,对它的字段不是很了解,在此做个记录,方便日后查询 dede数据库字段说明: dede_addonarticle 附加文章表 aid int(11) 文章编号 typeid...int(11) 分类栏目编号 body mediumtext 文章内容 dede_addonflash 附加Flash表 aid int(11) FLASH编号 typeid int(11) 分类栏目编号...作品等级 width smallint(6) 影片宽度 height smallint(6) 影片高度 flashurl varchar(80) FLASH地址 dede_addonimages 附加图集表...col smallint(6) 多列式参数(列) isrm smallint(6) 是否下载远程图片 ddmaxwidth smallint(6) 小图片宽度限制 dede_addonsoft 附加软件表...) 程序演示地址 softsize varchar(10) 软件大小 softlinks text 软件下载链接列表 introduce text 软件介绍 dede_addonspec 附加专题表

    2.3K40

    用Dedecms5.7的arclist标签调用文章内容

    首先大家都知道在Dedecms中,list标签是可以调用文章内容的,调用格式就不再此冗述了。...用Dedecms中的arclist标签也是可以在列表页调用文章内容的,虽然在官方的标签说明中,arclist标签的底层标签中不包含body。...channelid=’1′} [field:body/] {/dede:arclist}   重点就是addfields=’body’ channelid=’1′这部分,意思为调用ID为1的内容模型中的附加字段...因此除了在列表页中加入上述代码外,还需要进入Dedecms后台–核心–频道模型–内容模型管理–普通文章,点击进入后,在“列表附加字段”这个项目中添加字段:body,这样就可以了。...(注:在5.7中,好像那个列表附加字段。) 以上文字是转载的。可以使用的。

    5.7K10

    goldengate同步无主键无唯一索引表的问题以及解决方案--更新关于附加日志

    备注:表无任何索引和约束,sxiaoxu表示源表,txiaoxu表示目标表. create table sxiaoxu ( id int not null, name...,查看目标端更新情况 --准备工作完成包括配置抽取进程,应用进程以及数据库级别附加日志、表附加日志 1、验证表附加日志是所有列 info trandata XIAOXU.SXIAOXU Logging...目标表txiaoxu,是更新第一条数据 ? 3.4 如果源表表结构发生,如是大字段会造成数据不一致问题.如是非大字段,必须重新删除附加日志,再次增加,否则会造成无法捕获增加列更新情况....表结构发生变化,必须删除附加日志,再次增加附加(针对add trandata方式增加,如果是add schematrandata不存在这个问题),否则会出现数据不一致情况,主要schematrandata...,尤其是oracle数据库,如果是大表全列附加日志,需要考虑数据库归档空间增加以及OGG抽取给数据库造成额外IO影响,需要评估下.

    2.1K30

    SAP操作教程第17期:SAP B1设置自定义表和创建自定义字段

    01 关于自定义表的设置第一步:在【工具】-【定制工具】-【用户自定义的表】 第二步:1、在用户定义的表中输入需要的主表和子表的名2、建表时需要选择正确的单据类型3、此时点击【忽略】这里忽略连接4、如果在建表中时候发现录错了...第三步:在新建了主表和子表的表名后,在【工具】-【定制工具】-【对象注册向导】中定义新建的表信息1、在用户定义对象注册页面选择【下一步】2、接着选择添加新对象,点击【下一步】3、在基本设置中输入你需要的表名和标识...2、找到主表并在对应的表里添加需要的字段信息,设置完成点击【添加】3、添加自定义字段的时候需要关闭其他已打开的窗口,此时页面弹出已修改数据库结构,要继续处理,所有打开的窗口将关闭,是否继续。...,完成并进行【下一步】3、进入修改基本设置点击【下一步】4、进入修改服务选择【下一步】5、进入用户界面设置选择【下一步】6、进入修改默认表格的字段,找到需要添加的字段,并点击【下一步】7、进入链接附加下级用户表...,找到链接的表,并点击【下一步】8、链接附加下级用户表,新增子表需要的字段,【下一步】9、执行链接,点击【完成】10、点击【忽略】连接11、关闭所有窗口,选择【是】12、对象执行成功,点击【完成】第三步

    81410

    dedecms文章标题是在哪个数据库表?要批量替换关键词

    一位小MM刚接触dedecms没多久还不熟悉后台的操作,她说改dedecms文章中的品牌名改到手酸,问ytkah是否有批量替换关键词的方法,教了她dedecms后台批量替换文章中的关键词方法,她高兴坏了...过没几分钟,她又发愁了,说标题还是没变,不知道如何批量替换dedecms文章标题中的关键词。   其实方法是一样的,只是数据表不同而已。那么,dedecms文章标题是在哪个数据库表呢?...织梦文章标题在数据库dede_archives表中,如果你有设置数据库表前缀的话,dede换成自己设置的字符。   ...笔记:dedecms文章标题在dede_archives里,dedecms文章内容在dede_addonarticle里

    2.7K10

    整理的dedecms标签大全,方便查找

    平时用dedecms开发经常会用到一些标签,特别是首页、栏目页、内容页,这些页面都会用到标签的调用,比如title、keywords、description、arclist、field.body等,...为了方便查找,ytkah特地整理了dedecms标签,大家可以用ctrl+F实现搜索。...dedecms首页标签 网站名称:{dede:global.cfg_webname/} 网站根网址:{dede:global.cfg_basehost/} 网站根目录:{dede:global.cfg_cmsurl...但这里是表示不包含这些属性 orderway='desc' 值为 desc 或 asc ,指定排序方式是降序还是顺向排序,默认为降序 subday='天数' 表示在多少天以内的文档 用arclist调用于附加表字段的方法...: 要获取附加表内容,必须符合两个条件 1、指定 channelid 属性 2、指定要获得的字段 addfields='字段1,字段' 如: {dede:arclist addfields='filetype

    8.8K50

    DedeCMS织梦设置删除文章同步删除图片和附件策略

    所以这里需要考虑是否可以将DedeCMS织梦程序删除文章的时候也同时将图片和附件删除。目前这个办法老蒋还没有用到,不过我把解决方法整理过来。...这里的解决方法是要修改DedeCMS系统核心文件的,毕竟基本上所有的程序都不带这样的功能,包括我们使用的WordPress默认也没有自带这个功能的,都需要后期的添加插件或者代码修改实现。...return false; } function litimgurls($imgid=0){ global $lit_imglist; $dsql = new DedeSql(false); //获取附加表...dede_channeltype AS c ON a.channel=c.id where a.id='$imgid'"); $addtable = trim($row['addtable']); //获取图片附加表...解决方法参考来自:https://www.cnblogs.com/xiamidong/p/13356221.html 本文出处:老蒋部落 » DedeCMS织梦设置删除文章同步删除图片和附件策略 | 欢迎分享

    2.6K20

    【重学 MySQL】六十六、外键约束的使用

    关键字 FOREIGN KEY 主表和从表/父表和子表 主表(父表):被引用的表,被参考的表 从表(子表):引用别人的表,参考别人的表 例如:员工表的员工所在部门这个字段的值要参考部门表:部门表是主表,...例如:学生表、课程表、选课表:选课表的学生和课程要分别参考学生表和课程表,学生表和课程表是主表,选课表是从表。 外键约束的创建条件 主表存在:主表必须已经存在于数据库中,或者是当前正在创建的表。...创建(CREATE)表时就指定外键约束的话,先创建主表,再创建从表 删表时,先删从表(或先删除外键约束),再删除主表 当主表的记录被从表参照时,主表的记录将不允许删除,如果要删除数据,需要先删除从表中依赖该记录的数据...,然后才可以删除主表的数据 在“从表”中指定外键约束,并且一个表可以建立多个外键约束 从表的外键列与主表被参照的列名字可以不相同,但是数据类型必须一样,逻辑意义一致。...也就是说,即使你不用外键约束,也要想办法通过应用层面的附加逻辑,来实现外键约束的功能,确保数据的一致性。 阿里开发规范 【强制】不得使用外键与级联,一切外键概念必须在应用层解决。

    13110

    金蝶K3 WISE所有单据数据库内码及描述对照表

    20010 t_PA_ItemRef 工资职员附加信息表 工资职员附加信息表 20011 t_PA_ItemRefType 工资职员附加信息类别表 工资职员附加信息类别表...(不包括材料附加费) 340057 StdCost_CostCalCarriedAttachCost 分项结转成本计算附加费(包括加工费附加费和材料附加费) 分项结转成本计算附加费(...包括加工费附加费和材料附加费) 340058 StdCost_CostCalCarriedCost 分项结转成本计算结果表(包括材料费,加工费,附加费) 分项结转成本计算结果表(包括材料费...分项结转成本计算附加费(包括加工费附加费和材料附加费) 分项结转成本计算附加费(包括加工费附加费和材料附加费) 340062 StdCost_CostCalCarriedCost_History...工资自定义项目字段信息表 1280407 t_PA_ItemRef 工资职员附加信息表 工资职员附加信息表 1280408 t_PA_ItemRefType 工资职员附加信息类别表

    4.6K21

    CC++ Qt 数据库SqlRelationalTable关联表

    在上一篇博文中详细介绍了SqlTableModle组件是如何使用的,本篇博文将介绍SqlRelationalTable关联表组件,该组件其实是SqlTableModle组件的扩展类,SqlRelationalTable...组件可以关联某个主表中的外键,例如将主表中的某个字段与附加表中的特定字段相关联起来,QSqlRelation(关联表名,关联ID,名称)就是用来实现多表之间快速关联的。...首先我们创建两张表,一张Student表存储学生名字以及学生课程号,另一张Departments存储每个编号所对应的系所名称,运行代码完成创建。...db.open()) return; // 执行SQL创建表 db.exec("DROP TABLE Student"); db.exec("CREATE TABLE...这两张表通过departID相关联,如下:图片创建完成后,我们在程序的构造函数直接实现绑定即可,这段代码很简单如下:// https://www.cnblogs.com/lysharkMainWindow

    57410

    CC++ Qt 数据库SqlRelationalTable关联表

    在上一篇博文中详细介绍了SqlTableModle组件是如何使用的,本篇博文将介绍SqlRelationalTable关联表组件,该组件其实是SqlTableModle组件的扩展类,SqlRelationalTable...组件可以关联某个主表中的外键,例如将主表中的某个字段与附加表中的特定字段相关联起来,QSqlRelation(关联表名,关联ID,名称)就是用来实现多表之间快速关联的。...首先我们创建两张表,一张Student表存储学生名字以及学生课程号,另一张Departments存储每个编号所对应的系所名称,运行代码完成创建。...db.open()) return; // 执行SQL创建表 db.exec("DROP TABLE Student"); db.exec("CREATE...(QAbstractItemView::SingleSelection); ui->tableView->setAlternatingRowColors(true); // 打开数据表

    50600
    领券