重复资料的问题

王向飞 2011-03-08 03:05:12
不要帖代码


假如A用户在“用户表”里注册了两个账户

张三 男 1990-01-01 北京 个体
张小三 男 1990-01-01 上海 个体
张啊三 男 1990-01-01 北京 个体

并分别用这两个账户做了不同的操作,如发帖,订阅短消息等等,

现在A用户提出一个需求,想把自己的信息资料进行合并。即“张小三”,“张啊三”所发生过的全部操作信息,归为“张三”名下,数据合并为:

张三 男 1990-01-01 上海 个体

请问这时 :
“用户表”里是不是有必要移除“张小三”"张啊三" 这些信息记录(当然日志记录是肯定会有记录),
还是应该给此类记录标记一个特殊标记(不显示,不查询),
还是应该。。。。。


求指导、批判


...全文
215 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
dianyancao 2011-03-08
  • 打赏
  • 举报
回复
这样的话,我表里岂不是有很多重复数据??主键怎么确定?
王向飞 2011-03-08
  • 打赏
  • 举报
回复
这样的话,我表里岂不是有很多重复数据??主键怎么确定?
王向飞 2011-03-08
  • 打赏
  • 举报
回复
那我原B、C的账号的记录怎么归集到A账号下???

所有B\C的记录


[Quote=引用 36 楼 liu0701 的回复:]
引用 30 楼 wxf163 的回复:
最简便的方法就是

建立一个对应表

a a
a b
a c

用户表左联这个对应表,再左联其他相关涉及到的业务表

这样 其他业务表就不用更新啦




引用 29 楼 xiao_ai_mei 的回复:
那这个就太庞大了。

同类的账号 建立一个新的关键字怎么样 呢?就不用更新了
我瞎说的

建一个对应表也可以,……
[/Quote]
高山 2011-03-08
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 wxf163 的回复:]
最简便的方法就是

建立一个对应表

a a
a b
a c

用户表左联这个对应表,再左联其他相关涉及到的业务表

这样 其他业务表就不用更新啦




引用 29 楼 xiao_ai_mei 的回复:
那这个就太庞大了。

同类的账号 建立一个新的关键字怎么样 呢?就不用更新了
我瞎说的
[/Quote]
建一个对应表也可以,不过这样的工作量更大吧...
这样就多出来一个关系映射!要改很多已有的代码!还要改变表名
要是只是更新被替换的记录干过的事情的话直接一条
update 干什么事情 uid = newuid where uid = 老uid
不就可以了吗?
这样的话只用关心有那些表参与进来就OK了
其他模块基本没动!
王向飞 2011-03-08
  • 打赏
  • 举报
回复
不光相同,相关的内容也要改成一条啊

[Quote=引用 34 楼 maco_wang 的回复:]
新添加个字段,以标识为相同不可以吗
[/Quote]
叶子 2011-03-08
  • 打赏
  • 举报
回复
新添加个字段,以标识为相同不可以吗
Xiao_Ai_Mei 2011-03-08
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 wxf163 的回复:]
最简便的方法就是

建立一个对应表

a a
a b
a c

用户表左联这个对应表,再左联其他相关涉及到的业务表

这样 其他业务表就不用更新啦




引用 29 楼 xiao_ai_mei 的回复:
那这个就太庞大了。

同类的账号 建立一个新的关键字怎么样 呢?就不用更新了
我瞎说的
[/Quote]不错,这样最省事
王向飞 2011-03-08
  • 打赏
  • 举报
回复
这个帖子讨论的不就是怎么合并吗???[Quote=引用 31 楼 kaukiyou 的回复:]
写一个完整的合并过程,
把用户资料合并后,业务数据全部跟剩下的唯一的用户资料联系起来。
[/Quote]
kaukiyou 2011-03-08
  • 打赏
  • 举报
回复
写一个完整的合并过程,
把用户资料合并后,业务数据全部跟剩下的唯一的用户资料联系起来。
王向飞 2011-03-08
  • 打赏
  • 举报
回复
最简便的方法就是

建立一个对应表

a a
a b
a c

用户表左联这个对应表,再左联其他相关涉及到的业务表

这样 其他业务表就不用更新啦



[Quote=引用 29 楼 xiao_ai_mei 的回复:]
那这个就太庞大了。

同类的账号 建立一个新的关键字怎么样 呢?就不用更新了
我瞎说的
[/Quote]
Xiao_Ai_Mei 2011-03-08
  • 打赏
  • 举报
回复
那这个就太庞大了。

同类的账号 建立一个新的关键字怎么样 呢?就不用更新了
我瞎说的
王向飞 2011-03-08
  • 打赏
  • 举报
回复
关键a b c记录会发生好多业务呢,合并以后全归集到a记录名下

怎么归集 所有业务表涉及到b c的全更新?全插入新记录?

死啦死啦地

[Quote=引用 27 楼 xiao_ai_mei 的回复:]
能否,先把明细A,B,C...和最终汇总成的记录建立关联。

不然没法关联的话,手动就死啦死啦的
[/Quote]
Xiao_Ai_Mei 2011-03-08
  • 打赏
  • 举报
回复
能否,先把明细A,B,C...和最终汇总成的记录建立关联。

不然没法关联的话,手动就死啦死啦的
飘零一叶 2011-03-08
  • 打赏
  • 举报
回复
王向飞 2011-03-08
  • 打赏
  • 举报
回复
难点在

被替换掉的那些记录要全部转移到
现在所剩的记录上,

要是业务比较复杂的情况下,比如(资金,短信,上传文件,发帖等等所有信息都能顺利的转移到现在账户的名下 ),如何能既解决问题,又不会发生大范围的数据更新呢。。。
高山 2011-03-08
  • 打赏
  • 举报
回复
一步一步来吧
1、将待替换的账号标示为不可用
2、置换掉待替换的账号的所有行为,替换成要使用的账号。
3、本着尽量不丢失数据的原则处理两个账号的冲突!
4、记录日志,保留证据

要是再有人注册被替换掉的ID,提示已注册!
王向飞 2011-03-08
  • 打赏
  • 举报
回复
那 客户要合并信息怎么办呢。。。

见 15#

三条信息都不动,再插入一条?

[Quote=引用 22 楼 josy 的回复:]
原始记录最好不要动,否则该帐号被抢注之后,若干年后,单凭日志你也搞不清楚到底谁干了些什么
[/Quote]
百年树人 2011-03-08
  • 打赏
  • 举报
回复
原始记录最好不要动,否则该帐号被抢注之后,若干年后,单凭日志你也搞不清楚到底谁干了些什么
jiao3630 2011-03-08
  • 打赏
  • 举报
回复
搞个废除数据表……
王向飞 2011-03-08
  • 打赏
  • 举报
回复
o 谢特

忽然发现有点眉目了 [Quote=引用 18 楼 xiao_ai_mei 的回复:]
直接更新不好定位

那么你如何来确定
张小三 张啊三 就是张三的?
[/Quote]
加载更多回复(18)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧