登录站点

用户名

密码

Wordpress数据库基本结构及导入原学习日记数据库相关SQL语句

已有 780 次阅读  2007-07-17 07:05   标签数据库  学习日记  mysql  wordpress  SQL 

经过数天的努力,终于把原来学习日记数据库导入了wordpress数据库,wordpress版的学习日记正式开张。作为开张第一篇日记,是关于wordpress数据库的基本结构学习和一些导入相关的sql,供自己备忘和一些有此需求的朋友参考。还请朋友看见错误提示一下。谢谢。


wordpress数据库表基本结构:

wp_options:系统基本设置信息;

wp_users:注册用户基本信息;

wp_usermeta:注册用户附加信息,主要包括权限等设置;

wp_categories: 日记分类,友站链接(blogroll)也包含其中;分类之间也可以有从属关系;公开日记在category_count中计数,私人日记不计数;

wp_links:友站链接(blogroll);

wp_link2cat: 友站链接的分类;

wp_posts:日记,其中的上传的附件和图片也作为其中的记录,不过类别不同,与日记存在从属关系;其中有几个字段好像没用,如: post_category,post_parent

wp_post2cat:日记(包括附件)的分类;

wp_postmeta:日记中的一些附加信息,也包括上传附件的一些附加信息,自定义字段也存在这里,如:Jerome’s Keywords的tag属性就是保存在这里的;

wp_comments:评论,评论的游客的userid为0;


方法:

在原学习日记的源码的基础上进行导入。


步骤:

1、在wordpress中建立分类(学习日记表:goalsgroup,article;wordpress表:wp_categories);

2、导入用户数据(学习日记表:user;wordpress表:wp_users,wp_usermeta);

3、导入日记数据(学习日记表:article,goalsgroup;wordpress表:wp_posts,wp_post2cat);


实施:

1、学习日记分类:

决定用原来学习日记的大分类作为现在个人blog的分类:

2、导入用户数据

从学习日记user表中读出一条记录,形成wordpress的wp_users和wp_usermeta表所需的数据

...


结果,在原学习日记源码的基础上,结合代码和SQL,完成数据导入。


以下是一些使用过的SQL语句,记在这里备忘。


1)、导入分类:



INSERT INTO `wordpress`.`wp_categories`(cat_ID, cat_name, category_nicename)

SELECT `learndiarydb`.`goalsgroup`.`groupID`+2, `learndiarydb`.`goalsgroup`.`groupName`, `learndiarydb`.`goalsgroup`.`groupName` FROM `learndiarydb`.`goalsgroup` WHERE 1


2)、导入日记或目标(下面是导入目标,在post_category中的是可见性标志,在原wordpress中这个字段好像是空置不用的,据可见性标志设置wordpress文章的可见性)



INSERT INTO `wordpress`.`wp_posts`(ID, post_author, post_date,

post_content, post_title, post_category, post_modified, comment_count)

SELECT

`learndiarydb`.`article`.`articleID`,

`learndiarydb`.`article`.`userID`,

`learndiarydb`.`article`.`writeDate`,

`learndiarydb`.`article`.`articleText`,

`learndiarydb`.`article`.`articleName`,

`learndiarydb`.`article`.`visibility`,

`learndiarydb`.`article`.`lastUpdate`,

`learndiarydb`.`article`.`adviceSize`

FROM `learndiarydb`.`article`

WHERE `learndiarydb`.`article`.`typeID`=1


3)、在原数据库添加了分类的基础上导入日记的分类



INSERT INTO `wordpress`.`wp_post2cat`(post_id, category_id)

SELECT

`learndiarydb`.`article`.`articleID`,

`learndiarydb`.`article`.`cat_ID`

FROM `learndiarydb`.`article`

WHERE `learndiarydb`.`article`.`typeID`=2


4)、导入目标所在分类



INSERT INTO `wordpress`.`wp_post2cat`(post_id, category_id)

SELECT

`learndiarydb`.`article`.`articleID`, 12

FROM `learndiarydb`.`article`

WHERE `learndiarydb`.`article`.`typeID`=1


5)、据一般时间减8小时得到gmt时间



UPDATE wp_posts

SET

`post_date_gmt`=DATE_SUB(`post_date`, INTERVAL 8 HOUR),

`post_modified_gmt`=DATE_SUB(`post_modified`, INTERVAL 8 HOUR)


6)、统计各分类公开日记的数目



INSERT INTO

select cat_ID,count(*)

from article

where visibility=0

group by cat_ID


7)、根据原日记所在的目标确定日记所有的tag,“分类”包括“目标”



SELECT

t1.articleName AS diaryName,

t1.typeID AS diaryType,

t2.articleName AS goalName,

t2.typeID AS goalType,

t2.tag AS articleTags

FROM `article` AS t1 , `article` AS t2

WHERE t1.typeID=2 AND t2.typeID=1 AND t1.parentID=t2.articleID


8)、把tag标记写入临时表



INSERT INTO temp( diaryID, diaryName, tags )

SELECT t1.articleID, t1.articleName, t2.tag

FROM `article` AS t1, `article` AS t2

WHERE t1.typeID =2

AND t2.typeID =1

AND t1.parentID = t2.articleID


9)、把tag标记插入wordpress数据库,用的是Jerome’s

Keywords v1.9
给日志增加Tags的。

INSERT INTO wordpress.wp_postmeta(`post_id`,`meta_key`,`meta_value`)

SELECT learndiarydb.temp.diaryID, "keywords",learndiarydb.temp.tags

FROM learndiarydb.temp


10)、更新日记的guid字段



UPDATE wp_posts

SET guid=concat("http://www.learndiary.com/archives/diaries/", ID,".htm")

WHERE ID=1


分享 举报

发表评论 评论 (1 个评论)

  • pingback 2007-07-21 23:00
    [...] 学习日记利用apache的mod_rewrite模块的全套重定向方案+ Wordpress数据库基本结构及导入原学习日记数据库相关SQL语句+ 今天有书啦!-20070616+ 哎,由于笔记本未配,进度迟缓+ [...]
涂鸦板