The best solution, IMHO, is don't create views that depend on other views. Although, it makes it easier in some cases, you pay the price in maintenance, as you have already found out. In addition, there is also the security problem that comes into play. EG: a user is allowed access to view c, but should not be allowed to see columns of table 1, which
are referenced by view a.
Much better to just make each view a stand alone.