




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件秀吧Wordpress-数据库结构分析 用了一段时间的Wordpress,觉得真的是一个优秀的博客系统,而且有大量的主题和插件。是我目前用过的最棒的一个博客平台。不仅如此,Wordpress 的代码也是写得非常漂亮,很适合用来学习PHP,真的是很好,看代码看起来很舒服。打算深入研究一下Wordpress,顺便把我自己的学习经历也写下来,跟大家一起分享,有什么不对的地方,希望各位多多指点。(本人分析的是2.5版本的)Wordpress对数据库的操作都是通过一个基于现有的数据库类来实现的:/ WordPress DB Class/ ORIGINAL CODE FROM:/ Justin Vincent (justinvisunet.ie)/ 并且同时很多的数据库操作都封装成了函数,直接操作数据库的场合并不多。不过了解它的数据库结构,这样可以对它有个总体上的把握,也有利于源码的分析。Wordpress官方的数据表介绍的文章,可以去看看:/Database_Description数据表的总体结构如下图(为了节约篇幅,这里仅列出了主键、外键及某些字段):wordpress仅仅用了 10 个 Table就实现了这么强大的系统,让我钦佩: wp_comments wp_links wp_options wp_postmeta wp_posts wp_term_relationships wp_term_taxonomy wp_terms wp_usermeta wp_users下面我们按照它们之间的关系来介绍一下这几个表:按照功能大致分为五类。user: 用户信息,包括wp_users表和wp_usermeta表。 link:链接信息,包括wp_links表。 post: 文章及评论信息,包括wp_posts、wp_postmeta、wp_comments。 category,link_category,tag:这个是比较复杂的信息模块,它包含了对分类,链接分类,标签的管理,包括wp_term,wp_term_relationships和wp_term_taxonomy表。 option: 全局设置信息,包括wp_options表。 wp_posts作为一个博客系统,最核心的当然是博主发表的一些“文章”了,这些“文章”存放的地方就是这个 wp_posts 表了。注意,这里所说的“文章”是加引号的,因为这个表里存放的除了普通的文章之外,还有附件和页面(page)的一些信息。表里面的 post_type 这个字段就是用来标示类型的。还有一点需要注意的就是,这个表里一些字段是针对于 post_type 的特定类型的,比如 menu_order 这个字段是“页面(page)”特有的,用来指定“页面”的顺序。post_mime_type 是针对附件的,来指定附件的类型。wp_postmeta每篇文章的属性是不可能仅仅用 wp_posts 表里的那几个字段来完全标示的,往往还有一些因人而异的属性:写这篇文章时候的心情,地点等等。这些属性的名称和值类型都是不确定的,因 此,Wordpress 采用了元信息(meta)来表示它们。这个表很简单,只有 meta_id, post_id, meta_key, meta_value 这四个字段。post_id 是相关 post 的 id。我们注意到 meta_value 是 longtext 类型的,这里仅是用来存储值,至于值的确切类型,需要程序员来关心。在撰写文章的时候,我们可以发现编辑框下面有一个 Custom Fields 的选项,我们可以在这里添加 post 的 meta 信息。wp_comments用户评论。除了评论的内容以外,还记录了评论用户的名字,邮箱,网址,浏览器类型等信息。比较重要的两个字段是 comment_post_ID 和 comment_approved,前一个用来指示这条评论隶属于哪一篇文章,后一个用来记录审核状况。还有一个比较有意思的是这个 commnet_agent 字段,我们可以利用这个字段来统计一下用户浏览器类型。wp_users用户帐号表。存储用户名、密码还有一些用户的基本信息。wp_usermeta类似上面的 wp_postmeta,存储一些因人而异的用户信息。(比如QQ?ICQ?)wp_options用来记录 Wordpress 的一些设置和选项。里面有一个 blog_id 字段,这个应该是用在 MU 版里面来标示不同的 Blog 的。wp_links用来存储 Blogroll 里面的链接。wp_termswp_term_relationshipswp_term_taxonomy这三个表是这里面关系最复杂的了,在 Wordpress 2.2 及以前的版本中是没有这三个表的,代之的是 wp_categories、wp_post2cat 和 wp_link2cat 这三个表。对比这两个版本我们可以发现:在 2.2 版和之前的版本,post 和 link 和 category 的关系都是通过各自单独的表来记录的。而在 2.3 版中加入了 tag 的支持,Wordpress 把 post、link、tag 的分类都抽象成了统一的形式,用新的三个表来记录这些信息。wp_terms记录分类,链接分类,标签的一些简要信息,包括名称,缩写。wp_term_taxonomy是对wp_terms中的信息的关系信息补充,有所属类型(category,link_category,tag),详细描述,父类,所拥有文章(链接)数量。wp_term_relationships关系表,多对多的,object_id是与不同的对象关联,例如wp_posts中的ID(wp_links中的link_id)等,term_taxonomy_id就是关联wp_term_taxonomy中的term_taxonomy_id。还有一些字段我还不太清楚是有什么用的,例如:wp_term_relationships中的term_order;wp_terms中的term_group,wp_option中的一些值作用等等,在以后学习的过程中再作详细的讲解吧,如果大家知道的,也可以告诉我。在其他的文章中我看到有说虚表的,而且我在wpdb这个类中也看到了这样的声明:/ Our tablesvar $posts;var $users;var $categories;var $post2cat;var $comments;var $links;var $options;var $postmeta;var $usermeta;var $terms;var $term_taxonomy;var $term_relationships;var $tables = array(users, usermeta, posts, categories, post2cat, comments, links, link2cat, options,postmeta, terms, term_taxonomy, term_relationships);不知道上面的categories, post2cat,link2cat是不是虚表,还是为了兼容以前的版本用的,大家有什么看法的都尽管说说吧。Wordpress数据表的具体说明:分析版本:WordPress 3.0USERS表:保存用户信息NameType说明ID(UNSIGNED)bigint(20)Id(auto)user_loginvarchar(60)用户登录名user_passvarchar(64)用户登陆密码user_nicenamevarchar(50)用户昵称user_emailvarchar(100)用户emailuser_urlvarchar(100)用户网站urluser_registereddatetime用户注册时间user_activation_keyvarchar(60)用户激活码?user_statusint(11)用户状态display_namevarchar(250)用户显示的名称USERMETA表:保存用户个性信息NameType说明umeta_idbigint(20)iduser_idbigint(20)用户idmeta_keyvarchar(255)keymeta_valuelongtextvaluePOSTS表:保存post信息这个表中保存的不只是日志的信息,还有附件和页面(page)的信息,表里的post_type就是表示类型的。menu_order这个字段是页面(page)所特有的,来指定页面顺序。post_mime_type是针对附件的,来指定附件类型。NameType说明IDbigint(20)idpost_authorbigint(20)用户idpost_datedatetime(0)发表时间post_date_gmtdatetime(0)发表时间(GMT)post_contentlongtext文章内容post_titletext文章标题post_excerpttext文章摘要post_statusvarchar(20)文章状态public、draftcomment_statusvarchar(20)评论状态ping_statusvarchar(20)pingback状态post_passwordvarchar(20)文章密码post_namevarchar(200)文章的名字to_pingtextpingedtextpost_modifieddatetime修改时间post_modified_gmtdatetime修改时间(gmt)post_content_filteredtextpost_parentbigint(20)guidvarchar(255)文章guid(url)menu_orderint(11)post_typevarchar(20)post类型(post|page)post_mime_typevarchar(100)comment_countbigint(20)评论数POSTMETA表:保存POST额外信息编辑框下面有一个custom field的区域,主要就是POSTMETA中的信息NameType说明meta_idbigint(20)idpost_idbigint(20)postIdmeta_keyvarchar(255)keymeta_valuelongtextvalueCOMMENTS表:保存评论信息除了评论的内容以外,还记录了品论的用户的名字,邮箱,网址,浏览器类型等等信息。NameType说明comment_IDbigint(20)idcomment_post_IDbigint(20)post的idcomment_authortinytext评论人的名字comment_author_emailvarchar(100)评论人emailcomment_author_urlvarchar(200)评论人的网站地址comment_author_IPvarchar(100)评论人ipcomment_datedatetime评论时间comment_date_gmtdatetime评论时间(gmt)comment_contenttext评论内容comment_karmaint(10)comment_approvedvarchar(20)评论的状态comment_agentvarchar(255)评论用户的浏览器agentcomment_typevarchar(20)评论类型comment_parentbigint(20)评论的父iduser_idbigint(20)评论用户的id(注册用户)LINKS表:保存友情链接主要存放blogroll中的内容NameType说明link_idbigint(20)链接idlink_urlvarchar(255)链接urllink_namevarchar(255)连接名link_imagevarchar(255)链接图像link_targetvarchar(25)链接打开方式link_descriptionvarchar(255)链接描述=titlelink_visiblevarchar(20)是否可见link_ownerbigint(20)链接的创建者=user.idlink_ratingint(10)链接的等级link_updateddatetime修改时间link_relvarchar(255)与连接者的关系(XFN)link_notesmediumtext链接的注解link_rssvarchar(255)rssOPTIONS表:保存blog信息(易于扩展型)用于记录wordpress中的一些设置的信息。再MU版本里面标示不同的用户的。NameType说明option_idbigint(20)选项idblog_idint(10)blogIdoption_namevarchar(64)选项keyoption_valuelongtext选项valueautoloadvarchar(20)是否自动加载TERMS表:保存blog的文章分类、链接分类、标签等信息NameType说明term_idbigint(20)分类idnamevarchar(200)分类名slugvarchar(200)别名term_groupbigint(10)分组TERM_RELATIO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 9 窦娥冤教学设计-2025-2026学年高中语文必修二北京版
- 人教版地理七年级下册第六章第一节《位置和范围》说课稿
- 浙教版(2023)小学信息技术三年级上册第1课《认识在线社会》教学设计及反思
- 第3课 算法设计(教案)六年级上册信息技术浙教版
- 2025年中考数学试题分类汇编:圆的有关位置关系(9大考点51题) (第1期)原卷版
- 第10课 公益广告制作说课稿-2025-2026学年小学信息技术大连理工版五年级上册-大连理工版
- 2025年云南高考地理试题(学生版+解析版)
- 2025年体育健康知识竞赛试题库及答案(共200题)
- 3 毛泽东对社会主义经济建设的理论探索说课稿-2025-2026学年高中思想政治人教版选修2经济学常识-人教版
- 第1节 分子动理论的基本观点说课稿-2025-2026学年高中物理鲁科版2019选择性必修 第三册-鲁科版2019
- 2025年度房屋拆迁补偿安置房买卖协议
- 南昌市小学二年级 2025-2026 学年数学秋季开学摸底测试卷(人教版)含解读答案
- 2025年部编版新教材语文九年级上册教学计划(含进度表)
- 食堂工作人员食品安全培训
- 战场急救知识
- T∕CITS 146-2024 尿液有形成分名称与结果报告规范化指南
- 主要粮食作物机收减损技术-农业农机技术培训课件
- 2024年个人信用报告(个人简版)样本(带水印-可编辑)
- TSG11-2020 锅炉安全技术规程
- 【图文】IXIA测试仪使用手册-IxLoad
- 《气管插管术》PPT课件课件
评论
0/150
提交评论