账号通
    

账号  

密码  

8900

查看

19

回复
主题:[分享]只在后台执行SQL语句成功将多个同类自定义模型并入一个模型 [收藏主题] 本贴被认定为精华 转到:  
cvq 当前离线

704

主题

0

广播

0

粉丝
添加关注
级别:六年级

用户积分:4700 分
登录次数:151 次
注册时间:2008/8/26
最后登录:2016/8/22
cvq 发表于:2009/1/8 19:35:00   | 显示全部帖子 查看该作者主题 楼主 

看了官方发布的百万数据评测报告,我笑了,多么的强大,反过来看自己的站,还不到十万的数据量,竟然分了八九个模型,纯属多余,且给很多应用带来不便(主要是很多地方需要取模型ID头痛),于是决定把所有文章模型并入为一个模型里,这里所有需要合并的自定义文章模型都不包括有自定义字段,好了,开始动手吧。执行以下操作前请先备份你的数据库,本帖的操作将对数据库直接进行修改,由此带来的数据损坏、遗失及其它任何相关问题概与本人无关,请谨慎操作。

进入科汛后台,依次点击:设置-在线执行SQL语句,复制下面的代码到右上方的输入框,按CRTL+V粘贴,点击立即执行。

insert into ks_article(NewsID,  TID,  KeyWords,  TitleType,  Title,  FullTitle,  Intro,  ShowComment,  TitleFontColor,  TitleFontType,  ArticleContent,  Author,  Origin,  Rank,  Hits,  AddDate,  JSID,  TemplateID,  Fname,  RefreshTF,  ArticleInput,  PicUrl,  PicNews,  Changes,  Recommend,  Rolls,  Strip,  Popular,  Verific,  Slide,  Comment,  IsTop,  DelTF,  InfoPurview,  ArrGroupID,  ReadPoint,  ChargeType,  PitchTime,  ReadTimes,  DividePercent) select NewsID,  TID,  KeyWords,  TitleType,  Title,  FullTitle,  Intro,  ShowComment,  TitleFontColor,  TitleFontType,  ArticleContent,  Author,  Origin,  Rank,  Hits,  AddDate,  JSID,  TemplateID,  Fname,  RefreshTF,  ArticleInput,  PicUrl,  PicNews,  Changes,  Recommend,  Rolls,  Strip,  Popular,  Verific,  Slide,  Comment,  IsTop,  DelTF,  InfoPurview,  ArrGroupID,  ReadPoint,  ChargeType,  PitchTime,  ReadTimes,  DividePercent  from ks_u_news

 

请注意上面加色部分,蓝色为目标数据表,这里为系统自带文章模型数据表,你也可以改为其它目标数据表,橙色部分为源数据表,即需要合并的自定义数据表,为了防止等待时间过长导致IE超时,我们分几次执行这条语句,你有几个表需要合并就执行几次,每次只需把橙色部分换为需要合并的数据表名即可。都操作完后你应该可以在目标模型的信息管理中看到你所有转移的数据了,这时我们看到转过来的数据仍然是归属于原来模型的栏目的,而栏目管理中并没有这些栏目,不必着急去建栏目,我们再次进入在线执行SQL语句,执行以下语句:

 

update ks_class set ChannelID=1 where ChannelID=111 or ChannelID=112

 

蓝色部分为目标模型ID,橙色部分为源模型ID,即刚才你合并的那些模型ID,如果你有更多的合并模型,只需在这条语句后增加 or ChannelID=源模型ID 即可。如果不清楚模型ID是多少可以在模型管理首页中查看。

 

这时你在目标模型管理中应该可以看到所有的信息都有正确的归属栏目,同时栏目也转移到了该模型下。

别着急,还没完,这时候NewsID字段也许有很多重复的值,我们来解决它,在线执行SQL语句中执行:

update ks_article set NewsID=ID

同样的,Fname字段也不要有重复值,和上面类似:

update ks_article set Fname=ID

update ks_article set Fname=Fname+'.html'

至此,合并模型基本上结束了,我们还需要把多余的数据表删除,执行:

drop table ks_u_news

 

橙色为要删除的表,即刚才合并的表,有几个就删除几个吧。同时还要在模型管理中删除已经合并的自定义模型。

OK,恭喜你成功合并模型,感觉比原来快了不少,哈哈,也许是心理作用,最后也许你需要清除一下数据库日志。

 

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
cvq 当前离线

704

主题

0

广播

0

粉丝
添加关注
级别:六年级

用户积分:4700 分
登录次数:151 次
注册时间:2008/8/26
最后登录:2016/8/22
cvq 发表于:2009/1/11 1:36:00   | 显示全部帖子 查看该作者主题 沙发 
科汛在线商城系统(NET)
以下是引用mt56在2009-1-11 0:01:00的发言:
LZ可否写一个每个模型下前500篇文章随机显示调用的SQL文章列表不?

多个模型很难的,怎么取得URL值?至少我是没想到,这也是我要合并多个模型的原因之一。

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.84766秒 powered by KesionCMS 9.0