【发布时间】:2010-10-24 08:22:06
【问题描述】:
我有一个存储过程,它可以进行非常复杂的连接并返回 1 行数据(使用了 LIMIT 1)。然后在我的应用程序中使用该数据进行一些计算。通过这种方式,我尝试将业务逻辑排除在存储过程之外。 但现在我需要在另一个存储函数中获取该数据以进行一些计算。我想创建存储函数的原因是因为它将在另一个返回数千行的查询中调用。
有可能吗?我不想在存储的函数中复制复杂的连接逻辑...... 我看到的唯一解决方案是使用输出参数。
----------------------------------
PS。我决定向你解释一下我的情况,也许你会给我另一个决定。
我需要计算货物的完税价格(即最终价格,包括包装、发货和清关)。这个关税完税价格的计算有点复杂,我不想在我的存储过程和函数中保留复杂的逻辑。所以我创建了一个存储过程,它选择计算价格所需的所有数据,并在我的应用程序中使用这些数据来计算价格。目前一切正常。
但是现在我需要创建一个包含已付完税价格的价目表,并且我们有数千种商品。因此,如果我为每个货物和平调用我的存储过程,它将花费数千次往返(查询)到服务器。这就是为什么我想创建一个函数来调用存储过程并根据返回的数据计算价格。然后我想像这样使用它:
SELECT Description, blablabla, Weight, ..., GetDeliveryDutyPaidPrice(...) FROM pricelist;
有什么想法吗?
【问题讨论】:
标签: mysql database database-design architecture stored-procedures