银河网
http://bbs.inhe.net 正式上线工作,期间做的工作包括:
(1)、房产论坛(dzx15)转换到phpwind85
(2)、家居论坛(dnt3.0)转换到phpwind85
(3)、以上两个论坛进行数据合并操作,合并成一个phpwind85
(4)、和唐山论坛用户中心进行了打通,实现用户数据同步,登陆状态同步
以上所有用到的
转换程序、
合并程序、
用户中心整合相关程序都已经整理到转换区的8.5转换程序(
http://www.phpwind.net/read-htm-tid-1264904.html)。
合并程序:pw85_unit
用户中心整合程序:pw85_uc_fix
银河网最终要将各个分站的用户中心打通,打通之前需要对一些行业站进行合并比如房产论坛、家居论坛,但是这些站点是其他各个系统论坛站点,所以基本上的工作包括:
1、小站点分别转换,都是先转换到phpwind85版本
增加了dnt3.0转换到phpwind85,参考自dnt2.6,另外新增了相册、照片数据的转换;sqlserver在自己机子上安装可以使用sqlserver开发版本。安装完以后就和使用mysql一样存取数据了
2、小站点之间数据的无缝隙整合,为此写了一个phpwind85版本之间的数据整合程序
合并程序主要处理重复的数据的合并,其他基本上都是从一张表的数据拷贝到另一张表和普通的转换程序一样,只是一些数据的细节要处理一下 重复的数据处理基本的思路是如果表的数据比较小的话可以创建一个临时的缓存文件记录这些重复的数据比如用户组、勋章等等,数据比较大的可以创建一张临时表来记录重复的数据信息比如用户数据、帖子数据、版块数据等等,数据内容大概包括一个自增id、原来的id和name、新的id和name这样,到时候更新数据有所依据,比如用户重复数据表pw_bakuids记录了旧的uid和username,新的uid和username,那么在更新帖子的用户信息时就可以关联pw_bakuids查询,通过原帖子的uid和username获取到合并后新的uid和username;当然帖子里边的版块信息也是一样的(pw_bakfids记录旧的fid和fname、新的fid和fname)。其他以此类推,基本上是苦力活……
3、房产论坛+家居论坛数据整合到一个论坛,称为银河总站。将银河总站作为以后的中心站和其他各地区的分站点进行用户中心的整合打通,此次将唐山网的用户中心整合到了总站中,实现总站和唐山站公用总站的用户中心端,实现用户同步登陆和退出,积分数据的同步等。为此写了一个已经有用户基础的phpwindd85的多个论坛打通用户中心的方案,因为我们的用户中心是这样的一个情况:
从站的uid最大数要小于主站的uid值(因为最终注册的自增UID是根据主站走的,如果从站的最大UID大于主站的话,不久的将来 用户的数据会乱掉的),所以如果从站的uid比主站要大的话,必须将主站pw_members表的auto_increment增大到比从站的pw_members表的最大uid更大一点
1、主站和从站的用户UID必须统一并确保唯一。因为在从站通过用户名和密码登陆,会从主站数据库取用户名和密码,判断通过后,返回一个用户UID,根据这个UID到从站去取这个UID对应的用户数据比如积分、帖子、日志等等,所以必须保证主站和从站一个用户名对应的UID是一致的,否则可能登陆后用户名或者用户的数据不是这个登陆的用户数据。
2、主站有用户数据,从站没有:登陆成功,会将用户数据更新到从站用户数据表; 主站没有用户数据,从站有:登陆失败
所以需要将从站的用户数据pw_members、pw_memberinfo、pw_memberdata用户数据合并到主站用户数据:
(1)、未重复的账号:将从站用户名插入到主站用户名,不需要加前缀,生成的新的用户UID更新到从站所有关系到UID的表
(2)、重复的账号:将从站用户名+前缀,插入到主站用户数据表,将生成的新的用户UID和加前缀的用户名更新到从站所有关系到UID的表
3、登陆账号密码判断以主站的用户、密码为准,通过后将按照返回的UID从从站提取用户数据(所以整合的关键就是要处理UID和USERNAME)
用户数据合并注意点:
1、主站必须拥有主站+从站的用户数据,所以需要先将从站的数据和主站合并,并保存在主站用户数据局表中
2、合并过程中:
(1)、未重复的账号:将从站用户名插入到主站用户名,不需要加前缀,生成的新的用户UID更新到从站所有关系到UID的表
(2)、重复的账号:将从站用户名+前缀,插入到主站用户数据表,将生成的新的用户UID和加前缀的用户名更新到从站所有关系到UID的表
以上两种情况可以依据生成的pw_bakuids中的数据表进行记录旧的UID和username对应的新的UID和username,用于更新数据使用
3、根目录下生成一份tmp_repeatUser.php文件,统计从站和主站重复的用户名和更新到主站用户的新用户名,前面加一段字符串比如“new_”或者自定义(合并程序写好了)