最近优化限制用户可见数据的业务。
发现多对多判断范围效率非常低下,sql查询总体需要处理的数据量太大了。
所以突然感悟到,永远保持一对多的判断逻辑。
一个物料对应多个区域,是一对多;
一个用户浏览多个区域,是一对多;
一个用户只能有一个所属区域,一对一,产生的申请单也只能所属一个区域。
查询用户能看到哪些申请单时,用多个浏览区域和审批单join;
一个用户只有一个所属区域,一对一,拿用户所属区域,去查用户可见物料。
查询时,用where条件过滤;
可以考虑,使用多层级的范围限制。