79836

BUG:修改用户帐号后,用户的数据无法从禅道中查出来

回帖
回帖数 5
阅读数 2238
发表时间 2010-12-06 23:23:36
比如用户原来账户为aab,他创建了10个todo;
在修改账户名为ab之后,登录上去就再也查不到todo了。

我查了一下zendao的数据库,看到很多表的关联是通过account去关联的,而组织视图里的维护--账户名修改就改的account,这会涉及到多表的修改操作,在修改用户帐号的时候也得把全部表进行更新,这样不太方便。

建议把表的关联使用独立自带字段来做,比如accountid,而用户登录使用的帐号只在user表出现,这样就可以方便的修改帐号,而数据也不会丢失啦!
5个回复
🍟
春哥沙发
我们没有用userid来进行关联,是因为有两个问题:
1. 如果用户被删除,那么所有跟这个用户相关的信息,就只有数字,而数字没有任何的含义。用account关联,最起码可以知道是谁。
2. 关联id,在数据查询和显示的时候,也有很多不必要的麻烦。

所以,尽量不要去改用户名。
2010-12-07 13:45:05 王春生 回帖
这个问题挺纠结的。
你说的第一点,其实account目前的意义跟数字也没有多大不同,只是数字跟字母的区别。如果用户被删除,单单看一个字母的帐号也不一定能知道什么,尤其是在帐号不是人的名字拼音的时候;
第二点,查询跟显示时候的麻烦,其实现在也有。特别是显示,要做到人性化,显示的时候就要显示Name,目前你也需要到user表去查出name才能显示嘛。之前1.3的版本不就有些地方是显示account,有些地方则显示name么?

我还是坚持这一点:
对于一个系统来说,关联数据的唯一标识应该使用与用户属性无关的字段,这个字段是由系统给出的;而用户能自定义的,包括现在的account,都应该作为用户的属性只保存在一个表,可修改。至于用户属性是否要控制唯一性,那就看具体的需求了。关键属性--帐号、姓名建议做唯一性控制。
2010-12-08 09:27:56 KH 回帖
我们之前写程序,也都是用的id。后来才改用的account。 
用户名要比id的含义丰富多了。关联查询,如果用id的话,被删除的用户,就只有一个数字的id了。而account还可以保留是谁的信息。这一点对于历史记录的完整,非常重要。
用户名一直都是唯一的。
2010-12-08 09:34:35 王春生 回帖
🙉
会开车的西瓜#4
其实很简单,不允许修改account,只能修改name就行了。这也说得过去,账户一旦建立就作为唯一标识,不能修改,这也说得通。就像很多论坛、bolg系统,登录账号不能修改,名字随便改。
2010-12-08 15:30:34 会开车的西瓜 回帖
恩。:)
2010-12-08 15:36:58 王春生 回帖
联系我们
联系人
刘斌/高级客户经理
电话(微信)
17685869372
QQ号码
526288068
联系邮箱
liubin@chandao.com
相关帖子
返回顶部
客服头像
刘斌
高级客户经理
客服微信
17685869372
526288068
统一服务热线 4006-8899-23
我要提问提问有任何问题,您都可以在这里提问。问题反馈反馈点击这里,让我们聆听您的建议与反馈。