我对效率有一个好奇的问题。假设我在数据库上有一个字段,它只是一个表示其他内容的数字。比如,值为1表示该术语为30天。
编写像这样的SELECT语句会更好(更有效)......
SELECT
CASE TermId
WHEN 1 THEN '30 days'
WHEN 2 THEN '60 days'
END AS Term
FROM MyTable
...并将结果直接绑定到GridView,或者更好地评估GridView的RowDataBound事件中的TermId字段并相应地更改单元格文本?
不要担心可扩展性或类似的东西,我只关心整体效率的差异。对于它的价值,数据库驻留在Web服务器上。
答案 0 :(得分:1)
效率可能无关紧要 - 但代码可维护性确实如此。 问问自己 - 这些价值会改变吗?怎么样呢?如果这些值发生变化,使用2年后我需要做什么? 如果很明显在SQL中编写脚本意味着更好的可维护性(更容易更改),那么在存储过程中执行它。如果以后更容易在代码中更改它们,那么就这样做。 这两种方法的好处都非常低,因为代码看起来并不复杂。
答案 1 :(得分:0)
由于多种原因,我会在网格视图中处理翻译。
原因#1:共享SQL资源。网格是分布式的。更好的可扩展性。
原因#2:传输几个整数与字符串的带宽较低。
原因#3:代码可以针对其他语言进行本地化,而不会影响SQL Server代码。
答案 2 :(得分:0)
名为TermID的数据库表中的字段意味着自己表示另一个表的外键(可能称为“Term”)。
如果是这种情况,那么也许该表具有(或应该具有)可以保存“30天”文本的描述字段。您可以/应该加入此表以检索描述性文本。
虽然这种连接可能无法提高效率,但它的重量很轻,不会妨碍它。