Background: I'm primarily doing database, data-quality and data modelling development at my department. I'm trying to get people to integrate all their separate data into one data model, with the goal of ensuring a common high-quality data source reflecting the business reality. This to me primarily means logically separating Data-Sets into different tables and joining them via foreign-key relationships.
Problem: Lately I've been increasingly hearing groans when I say that a column needs to be referenced out to another table, and if they want it in their report, the tables will have to be joined in a view. People are also starting to be afraid of the complexity of the data model.
Option1: I can create a View, that gives my users the data they directly want to see. The view joins all tables to get the data as requested.
Option2: Users can see which data are foreign keys, and can on their own, retrieve the linked data. For example, if they have an invoice that is related to a person, they could the click on the person-name and retrieve the e-mail and telephone numbers of that person.
Question: What is the viability of Option2? I prefer Option2, since the data model is constantly developing, new elements are being added, and relationships may be redefined. This requires a constant maintenance of views. On the other hand, I wonder if navigating a relational model is too difficult (difficult as in "too much work", not as in "impossible").
Does anyone have any experience with this?