小天才Java架构方向面经(3)
反问
(上面那个问题如何解决,哈哈哈哈,没啥其他想了解的,我就想了解怎么解决)
其实你不需要那么考虑性能,解决方法简单的就是设定一个额外字段,这个额外字段存储的是当前部门的父部门的信息,比如你现在有:id=1,ids=「2,3,4」,parentid=0.
id=2,ids=「3,4」,parentid=1.
那么其实你知道你只是修改id=2的父部门,他的ids你是不用变的,也就是你开一个额外字段,存储信息为到达当前部门的全量路径,比如你现在是到达2对吧,那么就设定一个prefixpath = 「1,2」。
然后你现在就能在一条语句中查询出来你的prefixpath了,由于你的ids不用变,你只要变2前面的1就可以了不是吗,你在一条语句中实现predixpath做一下切割,切割到2这个位置,然后你把1改成你的新的parentid就解决了。
其实这个问题确实性能不好,但是能解决,你的设计思路也大致没问题。)
个人感觉:爱了爱了,虽然被拷打了,但是还是很开心。
(上面那个问题如何解决,哈哈哈哈,没啥其他想了解的,我就想了解怎么解决)
其实你不需要那么考虑性能,解决方法简单的就是设定一个额外字段,这个额外字段存储的是当前部门的父部门的信息,比如你现在有:id=1,ids=「2,3,4」,parentid=0.
id=2,ids=「3,4」,parentid=1.
那么其实你知道你只是修改id=2的父部门,他的ids你是不用变的,也就是你开一个额外字段,存储信息为到达当前部门的全量路径,比如你现在是到达2对吧,那么就设定一个prefixpath = 「1,2」。
然后你现在就能在一条语句中查询出来你的prefixpath了,由于你的ids不用变,你只要变2前面的1就可以了不是吗,你在一条语句中实现predixpath做一下切割,切割到2这个位置,然后你把1改成你的新的parentid就解决了。
其实这个问题确实性能不好,但是能解决,你的设计思路也大致没问题。)
个人感觉:爱了爱了,虽然被拷打了,但是还是很开心。
全部评论
我哭死,真的好详细,感谢
相关推荐
点赞 评论 收藏
分享
查看7道真题和解析
点赞 评论 收藏
分享
查看4道真题和解析 投递携程等公司10个岗位
点赞 评论 收藏
分享