猿问

请教下sql问题

update table del_flag = '1' where id = #{id}  and store_id = #{storeId}

这是我公司项目 mybatis里映射文件里的sql,要从商品表里删除数据,明明用主键id就能唯一的确定一条数据了,为什么还要加店铺id呢?

fenkapian
浏览 1486回答 2
2回答

道临

举个例子,如果只有一个id,那么有可能有人自己发送请求,通过瞎猜id都能把数据删除,如果store_id和主键id同时存在,那么就避免了这种情况,必须两个都知道才能删除

是王小二呀

我猜你并没有经历过海量数据查询时的绝望......按理说商品ID与店铺ID是多对1,如果表的底层对这两个字段加了分区,以我们平时300亿条数据的量级来看,查询速度是几倍甚至十几倍的差距。不管是关系型数据库还是nosql又或者ES、Lucene等搜索引擎什么的,你了解一下索引比如联合索引、全文索引一类的,还有分区啊什么的,你就能理解了。
随时随地看视频慕课网APP
我要回答