当前位置:网站首页>关于我仔细检查审核过关于工作人员页面,返回一个所属行业问题
关于我仔细检查审核过关于工作人员页面,返回一个所属行业问题
2022-08-05 00:11:00 【景行三千】
关于我仔细检查审核过关于工作人员页面,返回一个所属行业问题
事情是这样的,昨晚我收到了一个-所谓的小需求-工作人员页面,返回一个所属行业问题
于是记录一下。
首先数据库cd_workers表并没有行业字段,不可能通过普通的方法返回,确实存在一个人员类别id
但是,
原先的人员类别id来的奇怪,与数据库-人员类别 表-根本不照应,简单说就是全是错误的。关于这点,可以直接去看cd_workers表的gldgwid字段,再去cd_personnel_categories表对照,但是有一部分数据是对的,对的数据是在我写了人员类别表之后才对的,也就是说目前我估计80%的数据(就是所谓的原先的)是不对照的。也就是数据库前9页左右的数据是不对照的。
假设都正确了,那么通过-人员类别表-去拿到所属行业,单是拿到没问题(就是通过拿到gldgwid到cd_personnel_categories去拿所属行业),但是没法返回,原因是pageworkelist方法里返回值类型是cd_worker,为什么是cd_worker,因为必须要查这个表,这个页面是工作人员,所以所有的字段都是来自cd_worker,这也就是为什么代码查这个表,每一条数据就是cd_worker的所有字段,所以说可以返回cd_worker下的所有字段的数据,但是没有的字段没法返回,因为多返回的字段会造成类型不匹配,简单说就是不能这样(db.table(“cd_workers”).Find(&abc)),abc是一个比cd_workers多一个字段的切片。
听起来,那我们就只是再给cd_workers表新增一个Industry字段不就行了?
错,不只是,对工作人员模块,新增一个字段代价很大,需要去改相关的多个方法,例如crud,pagelist等等。以及有一个严重难点问题。起初的这个表是没有所属行业的,现在新增了一个,之前注册的账户怎么去拿到所属行业呢?你一定会说:去cd_personnel_categories表拿不就好了,错,前边说过,80%的数据都是错的,且不论这种方法能否实现,就假设实现会出现什么状况呢?对,80%的工作人员数据都将获得一个假的行业,什么意思呢,举例:同学a本来是工地下,干饭的,这个人员类别,因为之前错误的gldgwid而去拿就可能拿到一个挑粪的——人员类别。这可不就乱套了?本来是想获取所属行业的,现在却到好,行业不是自己的行业,人员类别也错了。
那么难道真的没有办法改进了吗?
当然不是,任何问题一定有解决办法,只是要付出代价,我们可以强行实现这个功能,也会有最小代价,但即便是最小代价,也很危险,来看下解决方法
如04所说,新增的工作人员以后都没什么问题,如果我们不去纠结之前的数据,本来其实也没什么人关注工作人员所属行业,大家不都是为了注册才写的这个登记信息的人员类别和所属行业,那么就改,现在说一下这种技术,在pageworkerlist方法下我们就可以去拿到所属行业了,并且返回的时候也不会报错是类型不匹配了。任务也就完成了,代价:新增一个字段,crud方法和pageworkerlist等可能更多方法需要对应改变,检查成本极大。其他潜在危险暂时没有发现。
边栏推荐
- KT148A voice chip ic working principle and internal architecture description of the chip
- 2022 Niu Ke Summer Multi-School Training Camp 5 (BCDFGHK)
- STC89C52RC的P4口的应用问题
- 【LeetCode】Summary of Two Pointer Problems
- ~ hand AHB - APB Bridge 】 【 AMBA AHB bus
- 在线中文姓名生成工具推荐
- 【云原生--Kubernetes】Pod控制器
- 【论文笔记】—低照度图像增强—Unsupervised—EnlightenGAN—2019-TIP
- 机器学习(公式推导与代码实现)--sklearn机器学习库
- Mysql_12 多表查询
猜你喜欢
Develop a SpaceX website based on the Appian low-code platform
3. Actual combat---crawl the result page corresponding to Baidu's specified entry (a simple page collector)
英特尔WiFi 7产品将于2024年亮相 最高速度可达5.8Gbps
Handwritten Distributed Configuration Center (1)
Basic web in PLSQL
2022 Niu Ke Summer Multi-School Training Camp 5 (BCDFGHK)
Xiaohei leetcode surfing: 94. Inorder traversal of binary tree
情侣牵手[贪心 & 抽象]
小黑leetcode冲浪:94. 二叉树的中序遍历
学会反射后,我被录取了(干货)
随机推荐
怎么将自己新文章自动推送给自己的粉丝(巨简单,学不会来打我)
情侣牵手[贪心 & 抽象]
机器学习(公式推导与代码实现)--sklearn机器学习库
从单体架构迁移到 CQRS 后,我觉得 DDD 并不可怕
统计单词(DAY 101)华中科技大学考研机试题
Essential knowledge for entry-level 3D game modelers
The applicable scenarios and common product types of the KT148A electronic voice chip ic solution
测试经理要不要做测试执行?
Couple Holding Hands [Greedy & Abstract]
.net (C#) get year month day between two dates
【云原生--Kubernetes】调度约束
没有这些「伪需求」,产品经理的 KPI 怎么完成?
如何写好测试用例
Detailed explanation of common DNS resource record types
对写作的一些感悟
Cloud native - Kubernetes 】 【 scheduling constraints
KT6368A Bluetooth certification problem_FCC and BQB_CE_KC certification or other instructions
Bidding Announcement | Operation and Maintenance Project of Haina Baichuang Official Account
子连接中的参数传递
在线中文姓名生成工具推荐