某个字段值,让前端直接传给我还是我自己去查询一次?


在页面打开加载的时候,已经把一个相册图片数组吐到前端页面了。然后前端如果点击删除按钮进行删除这张图片的时候,会传图片的ID(唯一)给我。然后我还需要一个是否是封面(is_cover)这个字段的布尔值给我。
这时候我突然想到一个问题。这个is_cover 是我先去数据库根据图片ID去查这个字段布尔值,还是让她直接传给我,我后台直接拿过来进行逻辑判断?

PS:因为之前去过一家公司面试,那个面试官面试说,尽可能的少去查询数据库。更多的数据处理最好用程序处理。还有想问一问 一般什么情况下前端传的我们要去数据库校验,什么情况下前端传的我们可以直接用。 本人 刚毕业不久,工作学习中。。。
拜谢 各位前辈了。

字段校验 数据库校验

Mr.Bone 9 years, 7 months ago

DB里数据量达到百万了。。可以才用前端传过来的值

如果就几万条,,, 随意,,,

树荫里的大象 answered 9 years, 7 months ago

如果前端传过来的值是可信性的,比如内部系统,可以选择由前端传过来,如果是对外提供的,或是安全性要求比较高的,就查库获取,为了提高查库效率可以做一些缓存

不灵不灵宅 answered 9 years, 7 months ago

从IO角度来讲,如果你不是采用数据库连接池方式的话,建议前端传给你,能减少网络连接请求。

Zeh.N answered 9 years, 7 months ago

尽可能少查询数据库 是一个非常基本的性能优化原则。但 前端提交的数据都是不可信的 也是一个非常重要的安全性原则。实际使用都要平衡各种要素做一个解决方案。

说到底最终还是要看业务,例如你提问中的是删除操作,这明显在实际系统中是一个低频操作,但是这个操作如果出现错误或者有漏洞是非常严重的,所以仅针对你所述的这个场景,建议从数据库中查询。因为后端做一次判定和做一次查询的代价是相当的。

开飞机的猛男 answered 9 years, 7 months ago

这个还是看你们的需求逻辑,这个字段如果传递错误,对整体需求的影响有多大,是否会影响到功能的使用,是否会产生脏数据等

你在做这个判断的时候,永远要记住,页面传递的值都是可以被伪造的。

女澡堂的男搓 answered 9 years, 7 months ago

Your Answer