面向最终用户的表格是不是应该始终采用视图的形式?
Posted
技术标签:
【中文标题】面向最终用户的表格是不是应该始终采用视图的形式?【英文标题】:Should end-user facing tables always be in the form of a view?面向最终用户的表格是否应该始终采用视图的形式? 【发布时间】:2015-09-22 21:58:55 【问题描述】:在创建数据仓库时,我习惯于在表之上创建视图,以便用户查询这些视图而不是表。无论如何,他们永远无法访问这些表格。
现在关于当前有问题的数据仓库,将在几个表之间进行连接以创建“结束表”或报告。如果我们走使用视图的路线,这些连接应该在视图级别完成,还是我们应该使用连接创建另一组表并在其上构建基本视图?
【问题讨论】:
连接应该在视图级别完成。您正在尝试让用户更轻松地访问数据库,而不仅仅是遵循关于视图的官僚规则。 【参考方案1】:在做决定时我会考虑两件事:
-
性能:如果您有连接填充物理表并且仅在这些表之上有视图,那么您的查询(在视图上)将会很快,因为没有即时发生的连接。
可扩展性和维护:如果您开始为用户需要的每个报表创建一个包含连接的视图,几个月后您将拥有大量视图(有些甚至可能在逻辑上相似,但没人知道要重用哪一个)。如果您的 DWH 将在其上运行大量报告并且您对每个报告都有一个视图,那么这将很快成为 DBA 人员的噩梦。
嗯,就像在数据库管理中的大多数问题一样,没有“一个正确”的答案。但是,是的,一般来说,DWH 会在上面运行很多报告。因此,从长远来看,创建视图并不能削减它。
【讨论】:
所以听起来您个人倾向于创建单独的联接表?以上是关于面向最终用户的表格是不是应该始终采用视图的形式?的主要内容,如果未能解决你的问题,请参考以下文章