在线问题反馈模块实战:梳理业务需求并创建数据库表
Posted bug菌¹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在线问题反馈模块实战:梳理业务需求并创建数据库表相关的知识,希望对你有一定的参考价值。
👨🎓作者:bug菌
💌公众号:猿圈奇妙屋
🚫特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。
🙏版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系bug菌处理。
一、前言🔥
接下来的这几期,bug菌想跟大家分享一下自己昨天刚接到一个临时的需求,热乎着呢,想分享一下自己是如何面对临时需求并制定整个开发周期,其中包括从梳理业务到创建业务表再到实现业务逻辑形成闭环再到与前端对接,其中会穿插一些业务拓展及功能性拓展,这一条龙流程在线与大家一起见证,分享给刚入门的小伙伴,希望对你们有所帮助。
环境说明:idea2019.3 + springboot2.3.1.REALSE + mybati-plus3.2.0 + mysql5.6 + jdk1.8
若小伙伴们在批阅文章的过程中觉得文章对您有一丝丝帮助,还请别吝啬您手里的赞呀,大胆的把文章点亮👍吧,您的点赞三连(收藏⭐️+关注👨🎓+留言📃)就是对bug菌我创作道路上最好的鼓励与支持😘。时光不弃🏃🏻♀️,创作不停💕,加油☘️
二、正文🔥
1️⃣背景
由于疫情被困在家,临时接到了公司一个新项目,项目周期两个月吧,然后需求也是相对比较简短,实现一个员工在线晋升评定平台。
然后我这边身为技术开发负责人,必当义不容辞接了啊,在家想怎么开发就怎么开发,相对还是比较自由,然后我就先是对整个业务系统做了全面梳理,之后开始制定后端系统架构,及业务表结构梳理并制定。
2️⃣调研业务需求
眼瞅着两个月就快要到了,这时候,又临时来了个新需求,还是客户那边提出来的,说系统需要在线支持用户能反馈系统或使用建议等问题收集,也就是说需要收集用户需求反馈且给予反馈。
想想这也说得过去,一般的业务系统都需要提供在线反馈功能,针对用户提出来的问题进行集中攻克或者对于热门的新需求给予满足。
根据以往业务开发经验,这个模块功能相对比较单一,因为不牵涉主流业务,所以可以直接当成一个模块单一开发就行了,然后就是确定表字段及创建相关业务表即可。但是具体需求这个没有需求指定,所以这里就需要我来想办法定一下了,发挥我的多年业务开发的经验了,如果换做是你,你们有何想法?
3️⃣创建相关业务表
仔细分析一下,也大致浏览了些传统网站的设计思路,总结下来就大致定了如下字段;
你们也可以看下,仅供参考,若是你们需求跟我不一致,也可以改动部分字段即可。
4️⃣创建表sql语句
如下是具体的创建业务表sql语句,仅供参考。
CREATE TABLE `user_questions` (
`id` varchar(64) NOT NULL COMMENT 'uuid主键',
`creator_name` varchar(255) DEFAULT NULL COMMENT '反馈人姓名',
`creator_account_id` varchar(255) DEFAULT NULL COMMENT '反馈人域账号',
`creator_dept_name` varchar(255) DEFAULT NULL COMMENT '反馈人部门名称',
`question_type` varchar(64) DEFAULT NULL COMMENT '反馈问题类型(功能异常、体验问题、功能建议、其它)',
`question_content` varchar(512) DEFAULT NULL COMMENT '反馈问题/建议详情',
`in_page` varchar(255) DEFAULT NULL COMMENT '反馈问题/建议所在页面',
`file_paths` varchar(255) DEFAULT NULL COMMENT '附件截图保存地址',
`status` int(1) DEFAULT NULL COMMENT '状态(0:正常,1:删除;2:已解决;3:不予解决;4:解决中)',
`solver` varchar(255) DEFAULT NULL COMMENT '解决人域账号',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`create_by` varchar(255) DEFAULT NULL COMMENT '创建人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`update_by` varchar(255) DEFAULT NULL COMMENT '修改人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果对于有需要的小伙伴,也替你们省去了手写创表sql的体力活了,直接粘贴复制不比你手动写sql轻松么?对吧,看看我想得多周道。
5️⃣总结
如果你对于该需求有何独特的见解,我希望你能在评论区留言告知我,我说不定就会采纳你的建议并实践到项目中去哦。
然后,我对于如上业务表结构字段,对其中某些字段我在此给大家统一解释一下,省的我带偏部分不走脑的小伙伴啦,当然,不是针对屏幕前你的啦。
6️⃣答疑
为何要保存域账号id(creator_account_id)字段?因为这是从OA系统的人员账户主键id,可通过这个字段关联拿到用户的所有基本信息,且该域账号id也是本系统的登录账户id。
然后对于用户的部门字段、用户姓名字段,其实完全可根据域账号id关联人员基本信息表获取,但是由于人员基本信息表是定时同步(每天凌晨1点触发同步),而同步逻辑却又是全量,就是先清表再全插,同步数据量过于庞大且没有保障,即使失败了也没有ack机制会再次触发同步,必须得等第二天运维人发现同步失败了手动执行,这多耽误事儿啊,既我就不想在同步过程中出现纰漏从而影响反馈问题模块展示用户信息,因此我干脆就冗余这些字段,在新增反馈问题的时候一并查出用户这些相关信息并进行存储。这样后续也就不会由于用户基本信息抽取故障等问题而造成数据用户信息无法展示的问题了。
可能很多用户会关心若是用户基本信息发生了修改,那怎么办?会用户基本信息同步吗?其实这个我问了需求,变动很小千年不动,虽然发生几率很小,但也不代表不发生,所以与需求讨论了下,结论就是开放口子后续可手动编辑这部分内容,毕竟改动非常的小,人为处理也再简单不过了,你们觉得呢?
... ...
好啦,以上就是这期的所有内容啦,你们学废了么?如果对你有所帮助,还请不要忘记给bug菌[三连支持]哟。如果想获得更多的学习资源或者想和更多的技术爱好者一起交流,可以关注我的公众号『猿圈奇妙屋』,后台回复关键词领取学习资料、大厂面经、面试模板等海量资源,就等你来拿。
三、往期热文推荐🔥
- 在线问题反馈模块实战(一):梳理业务需求并创建数据库表
- 在线问题反馈模块实战(二):封装代码自动生成类文件器
- 在线问题反馈模块实战(三):自动生成所有Controller、Service、Mapper等文件
- 在线问题反馈模块实战(四):封装通用字段类
- 在线问题反馈模块实战(五):实现对通用字段内容自动填充功能
- 在线问题反馈模块实战(六):接口文档定义
- 在线问题反馈模块实战(七):安装部署swagger2
- 在线问题反馈模块实战(八):实现图片上传功能-上篇
- 在线问题反馈模块实战(九):实现图片上传功能-下篇
- 在线问题反馈模块实战(十):实现图片预览功能
- 在线问题反馈模块实战(十一):实现图片下载功能
- 在线问题反馈模块实战(十二):实现图片删除功能
- 在线问题反馈模块实战(十三):实现多参数分页查询列表
- 在线问题反馈模块实战(十四):实现在线答疑功能
- 在线问题反馈模块实战(十五):实现在线更新反馈状态功能
- 在线问题反馈模块实战(十六):实现查详情功能
- 在线问题反馈模块实战(十七):实现excel模板在线下载功能
- 在线问题反馈模块实战(十八):实现excel台账文件记录批量导入功能
- 在线问题反馈模块实战(十九):实现数据批量导出到excel文件中功能
- 在线问题反馈模块实战(二十):完结篇
如上是整整二十期内容,每一期都是干货,对于一个模块的开发,如何一点一滴打造并测试部署上线,我再说一遍,这不是演习,是实战!是实战!是实战!
四、文末🔥
如果你还想要学习更多,小伙伴们大可关注bug菌专门为你们创建的专栏《springboot零基础入门教学》,都是我一手打下的江山,持续更新中,希望能帮助到更多小伙伴们。
我是bug菌,一名想走👣出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!
最后送大家两句我很喜欢的话,与诸君共勉!
☘️做你想做的人,没有时间限制,只要愿意,什么时候都可以start。
🍀你能从现在开始改变,也可以一成不变,这件事,没有规矩可言,你可以活出最精彩的自己。
💌如果文章对您有所帮助,就请留下您的赞吧!(#^.^#);
💝如果喜欢bug菌分享的文章,就请给bug菌点个关注吧!(๑′ᴗ‵๑)づ╭❤~;
💗如果对文章有任何疑问,还请文末留言或者加群吧【QQ交流群:708072830】;
💞鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复参与讨论(请勿发表攻击言论,谢谢);
💕版权声明:原创不易,转载请附上原文出处链接和本文声明,版权所有,盗版必究!!!谢谢。
以上是关于在线问题反馈模块实战:梳理业务需求并创建数据库表的主要内容,如果未能解决你的问题,请参考以下文章