0

При создании хранилищ данных я привык создавать представления поверх таблиц, чтобы пользователи запрашивали эти представления, а не таблицы. В любом случае они никогда не получают доступа к столам.Должны ли стороны, стоящие перед конечным пользователем, всегда быть в форме представления?

Теперь, касаясь текущего хранилища данных, будут созданы объединения между несколькими таблицами для создания «конечной таблицы» или отчета. Если мы идем по пути использования представлений, должны ли эти объединения выполняться на уровне представления, или мы должны создать другой набор таблиц с объединениями и просто построить основные представления поверх этого?

+2

Соединения должны быть выполнены на уровне представления. Вы пытаетесь сделать доступ к базе данных более простым для пользователей, а не просто следуя бюрократическому правилу о представлениях. –

ответ

0

Две вещи, которые я бы рассмотреть при принятии решения:

  1. Производительность: Если у вас есть соединения заселение физических таблиц и имеют только взгляды на вершине этих таблиц, ваши запросы (по количеству просмотров) будет быстро, как нет никаких стычек, происходящих на лету.
  2. Масштабируемость и обслуживание: если вы начинаете создавать представление с объединениями для каждого отчета, который нужен пользователям, через несколько месяцев у вас будет много просмотров (некоторые могут быть похожими по логике, но никто не узнает, какой из них следует использовать повторно). Это очень скоро станет кошмаром для людей DBA, если ваш DWH будет иметь множество отчетов, работающих на нем, и у вас есть представление для каждого отчета.

Ну, как и в большинстве проблем управления базами данных, нет «одного правильного» ответа. Но да, вообще DWH будет иметь множество отчетов, работающих сверху. Таким образом, создание представлений просто не сокращает его в долгосрочной перспективе.

+1

Похоже, вы лично склоняетесь к созданию отдельных таблиц объединений? – simplycoding