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

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

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

【问题讨论】:

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

标签: join database-design database-schema amazon-redshift database-security


【解决方案1】:

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

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

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

【讨论】:

  • 所以听起来您个人倾向于创建单独的联接表?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-16
  • 2016-02-16
  • 1970-01-01
  • 2018-08-23
  • 1970-01-01
  • 1970-01-01
  • 2013-02-02
相关资源
最近更新 更多