再问个和框架没太大关系的问题。希望能得到回复。
发布于:2022-01-17 09:50:54
#1 none110
我有两个表,A是分类,B是文章。
B里有个字段,是来存储A的分类ID的。A有个字段,来统计分类下的文章。
我是每当添加文章的时候,写入B的同时写入A的统计字段。添加的时候+1,删除的时候-1
现在得问题是,单个删除我会写了,但是当批量删除时,B表的分类ID字段会有多个,而且不相同,我如何让A表里的统计字段减去相应的啊?
我之所以不用count,而单独在A设置个字段,是害怕回头数据多了,count的时候,数据库有压力。
或许我这个做法并不合理。
希望J大,能给个示例代码。。。
2011-12-27 17:44:27
#2 jake
删一个就-1,批量删除就等于多个-1,实际上批量删除的情况会很少。所以不必担心有压力。
count的确是不好
不过在一般情况下,不需要担心效率,除非数据记录数在百万以上。
2011-12-27 20:29:27
#3 none110
主要是我在后台设置了这么一个功能,可以勾选,进行批量删除。
但是有可能新闻不是同一类的
例如,我同时勾选了5条,可能会有2条分类是1,1条分类是2,2条分类是3
这样,我传递一个item[]过去,接到后,可以用delete id in()来批量删除新闻表里的记录。
但是对于分类表B表的分类下的文章数量统计如何删除却不会操作了。
希望J大费下时间给讲解下。毕竟想学点东西,老是用逃避法来换种方法解决问题也是对自己不负责啊,嘿嘿。
2011-12-27 21:38:55
#4 jake
我自己就是按我上面说的做,搞不懂还有什么复杂的方法。
学点东西是好事,不过也要听一下别人实践的经验,不能一味觉得自己认为的就是对了。
--------------------
我也从来没想过要藏私或者怕麻烦,我自己用的解决方法,都会介绍给大家。
最多有时候就是不喜欢某些人一定要现成的代码,我会指出方向,但我希望每个开发者都学会自己去寻找答案
--------------------
加几句:可能是我们的教育比较失败,总让学生认为,灵活地解决问题就是逃避,就是错的。实际上,作为一个开发者,我觉得“灵活”比“老实”更重要。工作的很多时候,老老实实地做事是对的,但是如果在面对复杂的问题或者无法简单解决的问题,一味地用“正宗”的方法去钻牛角尖,那是对自己和对工作的不尊重;应该是退一步,好好思考问题的前因后果和环境因素,得出最有利于开发需求的方法。
2011-12-27 21:47:44
#5 klboy
:lol有道理。先弄出来再说,批量删除基本上用不到的,你要是真那么多数据也舍不得删除。要想重新安装,直接清空数据库了事。。何必这么纠结
2011-12-27 22:48:58
#6 none110
恩,谢谢J大的一些经验传授。
我主要是想学习好解决方法,方便以后碰到问题好解决。
今天早晨换了个思路解决了。或许不好,效率不高,但只是说下我得思路。也方便遇到同样问题的朋友,和我一样。
直接用foreach对数组进行遍历,遍历的时候执行A表中统计字段的-1动作。
这样或许会频繁操作数据库。
还有个办法,就是统计下数组下元素和元素出现的次数,来进行统计字段-出现次数。
其实批量删除的时候,一般都不会全部删除,数据也不会太多,所以,感觉两种方法都可以直接先用着。
2011-12-28 11:27:41