更新秋招进度:美团AI面挂、快手一面挂
笔试:京东、同程
暂时没收到新的面试了,休息了两天,明天继续打卡代码随想录+背八股了。
整理了一些之前项目的问题,把数据鉴权的逻辑重新想了一下,写到这里作为参考。
场景是 在一个类似 项目+任务管理系统,要求每个业务人员在列表中只能看到和自己有关的数据(项目或任务),如何做这个鉴权。
原本逻辑是:任务表里有对应的人员工号字段,在列表查询时把当前登录人的工号传进去,以工号做条件把有关的所有数据查出来,再做分页。
如果正常走分页查询的逻辑,然后再筛选行不行?
不行,这样做的话假如前10条数据有7条和自己相关,那么第一页就只会展示7条数据了。
但是这样数据量大的话,会有慢sql问题。最新的解决方案是代码里新加一个字段(把处理人工号拼接成一个字符串),创建任务时把这个字段写入es(text格式),查询时通过es做条件查询就可以了。