稍作建议后。
我们正在使用过滤器生成标准数据列表。
此筛选列表可以有3个替代视图,表示不同庄园中的数据 我的问题是:
存储过程是否应该以前端每个视图所需的格式返回数据?
或业务层是否应该重新格式化数据?
我一直认为最好尽快进出数据库,并允许业务层处理格式化。
提前感谢任何建议
更新: - 通过格式化,
1个视图包含带有可滚动表的所有数据
2视图将使用标题对数据进行分组,(单击标题以展开以查看)
3视图会将数据分组到日期组中,并将日期显示为表格行标题(7天活动),数据计数将显示在这些内容中
答案 0 :(得分:2)
我一直认为最好进出数据库 尽可能快,并允许业务层处理格式化。
简短的回答:正确,你已回答了自己的问题。
数据库将数据返回给您的应用程序,它的呈现方式取决于应用程序。当您想要向另一个应用程序提供相同的数据时会发生什么?您是否希望每次想要不同格式的数据时都要编写程序?当然不是。
1:视图包含具有可滚动表的所有数据
您无法从过程返回滚动窗口。无论如何,数据库将如何知道需要滚动多少数据?它不知道您正在使用的窗口/视口的大小。
2:视图将使用标题对数据进行分组,(单击标题以展开以查看)
这需要用户交互,这只是表示层的域。
3:视图会将数据分组到日期组中,并将日期显示为表格 行标题(7天intivials)和数据计数将显示 在那些intivals中
您可以从过程返回多个结果集,以提供结果和计数,但同样在应用程序中更容易处理。
答案 1 :(得分:0)
通常,您应该使用表示层来格式化数据输出。您可以让存储过程返回原始数据集,然后设置,例如3种不同的表示类型的3个不同的XSLT文件。这样,您始终可以执行DataTable.ToXML并将XSLT模板应用于此输出,以生成用户需要的格式。