I'm working on building a MySQL database and I'm thinking that rather than encode a bunch of complex join queries in the front end I'll create a view for any queries I need and then have all the front end code do simple SELECT whatever FROM some_view WHERE something=5;
queries.
It seems like a great idea as it abstracts away the underlying schema so the front end doesn't need to know about it and given that MySQL can merge views into queries I'd think this would be no less efficient than the more direct solution.
Now for the question: Is this a stupid idea for some reason I'm not spotting?
Note: This would only go two layers deep, e.i. views would only reference tables, never views.