In creating data warehouses, I'm used to creating views on top of the tables so that users are querying those views and not the tables. They're never given access to the tables anyways.
Now in regards to the current data warehouse in question, there are going to be joins among several tables to create the 'end-table' or report. If we go the route of using views, should those joins be done at the view-level, or should we create another set of tables with the joins and just build basic views on top of that?