我很奇怪厌恶将多个ID参数传递给单个存储过程。例如,这感觉错了:
GetMyObject(ListofIDs,OtherParam1,OtherParam2,...)
我明白如何做(如果必须的话,请正确)..但我不觉得我应该这样做。我觉得它违背了“获取项目”存储过程/子例程的目的。我觉得我应该构建我的SP以支持适当的过滤器参数。如果我的呼叫者有一个ID列表,他们不应该多次调用sp吗?
帮助?
答案 0 :(得分:0)
“按ID获取项目”例程永远不应该返回多个对象,因为这绝对没有语言意义。
“按ID获取项目”例程?当然,如果你有一个不错的用例,它会被经常使用。
但是大部分时间,是的,而不是按ID返回多个项目的例程,您需要一个根据应用程序适当的过滤参数返回项目的例程(例如“给我1月8日的所有交易超过10美元” )。
顺便说一句,有时一系列ID(例如5到10之间的所有ID)都是完全有效的过滤器集!
顺便说一句,这不一定只是MySQL或SQL-in-general问题。在任何语言中查询API的几乎任何类型的数据集都将呈现这些相同的设计问题,并且它们的答案通常非常相似。