起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 719|回复: 0

[分享] 根据人员ID查询人员的当前部门,解决重复与数据库交互

[复制链接]

28

主题

85

帖子

579

积分

高级会员

Rank: 4

积分
579
QQ
发表于 2024-6-6 10:46:29 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
笔者最近做了一个模块,需要逐条更新当前信息的使用人信息,但是UI层又没有根据人员ID查询人员部门的方法。每次通过调用action的方法又得去与数据库交互,导入3000条数据就卡死了,遂想到创建视图的方法,一次性将处理好的数据添加进缓存,然后在查询。
所以,我创建了一个视图,如下:
  1. create view PERSON_INFO_VIEW as
  2. SELECT
  3.     -- 所属部门
  4.     deptOrg.sID AS orgID, -- 部门ID
  5.     deptOrg.sName AS orgName, -- 部门名称
  6.     deptOrg.sFName AS orgFName,
  7.     -- 人员信息
  8.     p.sValidState, -- 人员可用标识
  9.     p.SID AS pID, -- 人员SID
  10.     p.sName AS pName,  -- 人员姓名
  11.     p.sSex AS pSex -- 性别
  12. FROM
  13.     SA_OPPERSON p
  14. -- 关联部门信息
  15. LEFT JOIN SA_OPOrg org ON p.sMainOrgID = org.sID
  16. LEFT JOIN SA_OPOrg deptOrg ON INSTR(org.sFID, '.dpt') > 0
  17.     AND SUBSTR(org.sFID, INSTR(org.sFID, '.dpt') - LENGTH(org.sID), LENGTH(org.sID)) = deptOrg.sID
复制代码


然后在UI层可以直接用bizData调用,每次就直接this.comp("personViewData").find(['pID'], ['xxxxxxxxxx']);就能获取到了,极大的提高了运行速度。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-12-2 18:58 , Processed in 0.054932 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表