Regarding separate back ends for separate companies, If you are HOSTING or providing services to multiple companies, you may think “Toss everything together so we can understand OUR business”. If you are in a call center environment, this often happens.
Having worked with a couple call centers, the best advice I can give is “Each client gets their own”. One of the companies I was working with had a very straight forward way of dealing with multiple clients when it came time to do the reporting and data analysis required to run the call center; they would have “Call center” software go through their clients data, database by database, to accumulate the information THEY needed. Often this was date/time of call, call duration, who took the call, and call resolution. If you have 20 clients and your reps are not dedicated to A client, this is vital for tracking rep performance.
They were geared so each rep could see which ever back end they were assigned to at that time. I don’t remember their network topology, but I do remember they had one subnet all clients were on that was used for backup as well as their internal reporting. This subnet had no outside access and was ONLY used for internal purposes.
In the end, it allowed them to do a lot of projections and forecasts without having to have just a single database. I’d bet it was a pain to get the reporting set up but it allowed them to avoid soo many headaches it was definitely worth it.