【问题标题】:format Data in stored procedure格式化存储过程中的数据
【发布时间】:2014-02-27 14:35:35
【问题描述】:

经过一点建议。

我们正在生成带有过滤器的标准数据列表。

这个过滤列表可以有 3 个替代视图,代表不同庄园的数据 我的问题是:

  • 存储过程是否应该以前端每个视图所需的格式返回数据?

  • 还是业务层应该重新格式化数据?

我一直认为最好尽快进出数据库,并让业务层处理格式化。

提前感谢您的任何建议

更新:- 通过格式化,

1 个视图包含带有可滚动表格的所有数据

2 视图将​​数据与标题分组,(单击标题以展开查看)

3 视图将数据分组到日期组中,并将日期显示为表格行标题(7 天 intivials),数据计数将显示在这些 intivials 中

【问题讨论】:

  • 毫无疑问,您的业务层应该用于表示和格式化。数据库尽可能多地处理数据,您的报告工具处理演示文稿。您可以通过各种努力在 SQL 中进行一些表示类型操作,但这并不值得。
  • @ChrisBint 问题已更新,谢谢

标签: c# asp.net sql sql-server tsql


【解决方案1】:

我一直认为进出数据库最好是 尽可能快,并允许业务层处理格式化。

简答:正确,您已经回答了自己的问题。

数据库将数据返回给您的应用程序,它的呈现方式取决于应用程序。当您想将相同的数据提供给另一个应用程序时会发生什么?您是否希望每次需要不同格式的数据时都必须编写程序?当然不是。

1:视图包含带有可滚动表格的所有数据

您不能从过程中返回滚动窗口。无论如何,数据库如何知道需要滚动多少数据?它不知道您正在使用的窗口/视口的大小。

2:视图会根据标题对数据进行分组,(点击标题可展开查看)

这需要用户交互,这只是表示层的领域。

3:视图会将数据分组到日期组中,并将日期显示为表格 行标题(7 天缩写)和数据计数将显示 在这些缩略语中

您可以从一个过程返回多个结果集,以给出结果和计数,但这在应用程序中更容易处理。

【讨论】:

    【解决方案2】:

    一般来说,您应该使用表示层来格式化您的数据输出。您可以让存储过程返回原始数据集,然后为 3 种不同的表示类型设置 3 个不同的 XSLT 文件。这样,您始终可以执行 DataTable.ToXML 并将 XSLT 模板应用于此输出以生成用户需要的格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      • 1970-01-01
      • 1970-01-01
      • 2014-10-26
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多