0

複数のIDパラメータを単一のストアドプロシージャに渡すことには、奇妙な嫌悪感があります。たとえば、これはちょうど間違っていると感じます:

GetMyObject(ListofIDs、OtherParam1、OtherParam2、...)

私はそれを行う方法を理解しています(私がしなければならない場合は正しく)。しかし、私はそれをすべきだとは感じていません。「アイテムの取得」ストアドプロシージャ/サブルーチンの目的に反しているように感じます。適切なフィルターパラメーターをサポートするようにSPを構築する必要があると感じています。発信者がIDのリストを持っている場合、spを何度も呼び出すべきではありませんか?

ヘルプ?

4

1 に答える 1

0

「IDでアイテムを取得」ルーチンは、言語的にまったく意味がないため、複数のオブジェクトを返すことはありません。

「IDでアイテムを取得する」ルーチン?確かに、それについて適切なユースケースがあり、それが十分に頻繁に使用される場合。

しかし、ほとんどの場合、はい、IDで複数のアイテムを返すルーチンの代わりに、アプリケーションに適したフィルタリングパラメータに基づいてアイテムを返すルーチンが必要です(たとえば、「1月8日からのすべてのトランザクションを$ 10以上でくれ」)。

ちなみに、IDの範囲(たとえば、5から10までのすべて)が完全に有効なフィルターのセットである場合があります。

ちなみに、これは必ずしもMySQLやSQLの一般的な問題ではありません。あらゆる言語のほぼすべての種類のデータセットクエリAPIは、これらの同じ設計上の質問を提示し、それらの回答は通常、非常に類似しています。

于 2010-07-20T02:16:42.610 に答える