I am beginning to work on an SAAS app which I hope will have multiple clients. I am looking for comments on the best way to set it up. I was planning to have one set of DBFs which are "shared" among all clients. Each DBF would have a client_id field in order to keep the data segregated by client. I figured that was much better than having separate DBFs for each client. One possible drawback is the file size limitation on DBFs. I intend to archive older data which will likely minimize this limitation. If the number of clients grows to a large number, I was thinking of creating a second group of DBFs for the next batch of clients. At this time, I intend to have just one webconnect app to drive everything.
I welcome any comments or suggestions. Joel Aiken
Hi Joel;
I use exactly your approach for my vertical market applications.
If I was starting from scratch, I would design the app to use SQL Server for any tables that might exceed 2GB. SQL Server Express 2017 is free and supports databases as large as 10GB (that's the Database size - not the table size). If your needs exceed that, you can simply upgrade the SQL Server to a paid version.
I also worked on another app that uses MySQL, which also works fine - but I find the MS management studio more familiar.
Thanks Michael.
Joel Aiken
You can have client-based sites all 'pointing' to the same WebConnect (or FoxInCloud) app.
Your app can identify the client from the URL (eg. client.myapp.xxx) to customize the page rendering and/or open the proper database and/or filter the table.
You can also have multiple apps with sub-classes of a shared process
class. The benefit is that, in case of an app failure, not all clients are down at the same time. Downside is that you need to update x apps instead of 1.
Segregating databases could be a benefit for your clients having a desktop version of your app, to synchronize and/or up|download the tables. Auditors might also prefer see things (app and data) clearly separated for each client.
Of course you have more setup with a segregated scenario, and setting up a new app through an on-line order would take longer (which, IMO, is acceptable and re-assuring for most B2B clients). You can still have a demo app for your clients' trial.
In short, IMO, the analysis should go beyond the DBF size.