4
我们的应用程序提供了基本上只是文本输入的多个查询接口。关于后端逻辑是否应该用通配符填充查询参数,然后执行类似操作还是应该只执行一个等号,是否有最佳做法?当然,另一种选择是允许用户使用通配符,然后在适当的情况下检查并使用“like”。查询表格逻辑:“Like”vs.“Equals”
我理解使用这样的通配符的性能意义,这可以被看作是一个主题问题,我只想知道是否有标准的做法。
我们的应用程序提供了基本上只是文本输入的多个查询接口。关于后端逻辑是否应该用通配符填充查询参数,然后执行类似操作还是应该只执行一个等号,是否有最佳做法?当然,另一种选择是允许用户使用通配符,然后在适当的情况下检查并使用“like”。查询表格逻辑:“Like”vs.“Equals”
我理解使用这样的通配符的性能意义,这可以被看作是一个主题问题,我只想知道是否有标准的做法。
这是我留给用户的东西,然后才能真正做出选择。我见过的所有UI都允许用户指定条件:
equal to
,not equal to
,less than
,greater than
, starts with
。然后,对于starts with
选项,你只是钉在%
并使用like
。
您会注意到(出于您似乎已经了解的性能原因),我使用starts with
而不是like
来限制拖动数据库性能的可能性。
我并不是无限制like
声明的忠实粉丝,尽管您也可以为那些能够存储颠倒索引的DBMS提供ends with
。
你会使用aligator括号进行字符串比较吗? – 2010-10-29 15:43:33
取决于用户。说实话,因为他们既不能理解'<>'也不懂'!=',所以我可能'不等于'(以及所有其他人的文本表示)。 – paxdiablo 2010-10-29 15:46:18
!=上的好处 – 2010-10-29 15:50:10