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 回答