From what you have stated so far - I believe synonyms (or views) will work for you. I prefer synonyms because they are a little easier to manage and change as needed.
If you need a dynamic solution that can change during any execution of code - you are going to have to rely on dynamic SQL. If the solution is static, that is - doesn't change once set up - or doesn't change often (for example, updating hardware), then using synonyms (or views) will work perfectly.
Jeffrey Williams
“We are all faced with a series of great opportunities brilliantly disguised as impossible situations.”
― Charles R. Swindoll
How to post questions to get better answers faster
Managing Transaction Logs