【发布时间】:2018-07-05 15:27:51
【问题描述】:
很快我计划将我的应用程序重写为 Java(来自 VB.NET),因为我有机会在新应用程序中进行大量代码清理,因为用 VB.NET 编写的应用程序是我的第一个应用程序,它对一个人来说非常大。
无论如何,我一直在考虑在 MySQL 存储过程中使用循环(我讨厌,我真的不知道为什么),如果查询数据库中需要执行循环的数据可能更好,然后使用客户端PC 执行所有这些操作,然后将数据发送回数据库。
一个操作示例:在我的应用程序中,有货物进出。当我销售商品时,我需要使用先进先出规则将销售与之前购买的商品联系起来。例如,我买了 10 根香蕉,然后又买了 10 根,然后又买了 20 根。然后我想卖掉 30 根香蕉,所以我先链接了 10 根香蕉,然后剩下 20 根,所以我再链接了 10 根香蕉,最后剩下 10 根,然后我把它和最后一批香蕉联系起来,但我没有用完所有的香蕉,所以我剩下了 20 根香蕉。
我的看法:
存储过程中的循环应该更快,因为它将所有数据集中在一个地方,但我不确定在数据库中执行此类操作是否是一种好习惯。
应用程序中的循环需要从数据库中获取数据,然后将其发回,这可能会造成问题,但我个人认为除 SQL 之外的其他语言的循环更易于阅读和调试。
你怎么看?
【问题讨论】:
-
一般来说:循环,坏;基于 SQL 集合的操作,不错。您可能会对用
SELECT语句替换循环的频率感到惊讶。 -
在深入了解存储过程之前,请先试用一个小案例并确保它对您有所帮助。 MySQL 存储过程会使您的应用程序变慢。
-
这是一个很难回答的问题,我不认为它可以在没有太主观的情况下回答。试试哪种方法更快、更安全并且可能更便携。
-
好吧,我尝试使用 INSERT INTO 和 SELECT 语句替换该循环,但我做不到。这可能是我缺乏知识,因为除了了解基础知识之外,我从未学习过任何语言。大部分都是我自己学的。
-
这里的大多数人都自学了技能,但他们并没有停留在基础知识上。如果你解决问题的方法是“我试过了,但我做不到”,那么你永远学不会。
标签: java mysql sql vb.net loops