with my vertical market solution some of my larger clients are asking for the ability to run multiple company files from the 1 head office. Without getting too involved with the accounting of this i think the easiest way for me to handle this would be to run a separate identical database servers for each companies data from the the 1 solution.
Can i use the switchServer fx for this?
Is this what the fx was designed for?
Are there other options?
I cannot claim familiarity with the technical approach to multi-servers, nor with the technical ramifications.
But being more of a consultant than a techie, this is the question that comes to mind:
Is there even a slight possibility that this large client will want to see certain reports crunched across several or all companies? This would be very easy to accomplish if you left a single solution in place on a single Servoy server, after some time/money is invested in a customization that
– adds a Companies table
– adds a company_id column to other tables as needed
– revises queries so that in most cases company_id is added as a criteria to all queries (or perhaps it can be set as a form-based filter on found sets)
Sounds like a lot of work, but IMO centralized data is the way to go. If they ever ask you for a report that tells them “how many Doo-Dads did we sell in 2005 at less than a 50% profit margin, across all companies” and you have split their data out across various back ends & various servers, you might regret the choice to decentralize the data.
I would suspect, also, that there might be various entities in the solution that might be pertinent to more than one company, such as common Contacts … a common Corporate Calendar with company holidays, etc.
Yes, this was originally the way i had intended to go by adding cost centres/company_id to relevant tables. As it is inventory related there is a fair amount of change involved as each would want to produce their own inventory reports, sales reports etc.
I wanted to save a bit of work and change to the existing solution for most of the others who will never use this feature. Need to have another chat to the client!
well, then, I guess my silly Doo-Dads example wasn’t too far off! Definitely less work, IMO, to add some fields to some tables for this client (and meanwhile also be upgrading your solution for a new enhanced release that can handle multiple companies … right?), than to have to reassemble data to be able to provide enterprise-wide status tracking, reporting, etc.