面向最终用户的表格是不是应该始终采用视图的形式?

Posted

技术标签:

【中文标题】面向最终用户的表格是不是应该始终采用视图的形式?【英文标题】:Should end-user facing tables always be in the form of a view?面向最终用户的表格是否应该始终采用视图的形式? 【发布时间】:2015-09-22 21:58:55 【问题描述】:

在创建数据仓库时,我习惯于在表之上创建视图,以便用户查询这些视图而不是表。无论如何,他们永远无法访问这些表格。

现在关于当前有问题的数据仓库,将在几个表之间进行连接以创建“结束表”或报告。如果我们走使用视图的路线,这些连接应该在视图级别完成,还是我们应该使用连接创建另一组表并在其上构建基本视图?

【问题讨论】:

连接应该在视图级别完成。您正在尝试让用户更轻松地访问数据库,而不仅仅是遵循关于视图的官僚规则。 【参考方案1】:

在做决定时我会考虑两件事:

    性能:如果您有连接填充物理表并且仅在这些表之上有视图,那么您的查询(在视图上)将会很快,因为没有即时发生的连接。 可扩展性和维护:如果您开始为用户需要的每个报表创建一个包含连接的视图,几个月后您将拥有大量视图(有些甚至可能在逻辑上相似,但没人知道要重用哪一个)。如果您的 DWH 将在其上运行大量报告并且您对每个报告都有一个视图,那么这将很快成为 DBA 人员的噩梦。

嗯,就像在数据库管理中的大多数问题一样,没有“一个正确”的答案。但是,是的,一般来说,DWH 会在上面运行很多报告。因此,从长远来看,创建视图并不能削减它。

【讨论】:

所以听起来您个人倾向于创建单独的联接表?

以上是关于面向最终用户的表格是不是应该始终采用视图的形式?的主要内容,如果未能解决你的问题,请参考以下文章

IOS - 如何使用自动布局有一个可滚动的表格视图标题

如何在滚动表格视图期间始终将表格视图的第一个单元格保持在其表格视图的顶部

如何将表格完成实现为表格

横向视图始终在一个视图中

具有多个部分的表格视图

如何填充表格视图,而不是表格视图控制器?