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