This topic is interesting to me as I've been hoping to eventually start using a RDBMS to avoid the headaches that comes with users having a mixture of OSes (98,XP,Vista) that could result in data corruption but a couple of questions does arise. I hope you don't mind me using your previous post as a checklist James
.
>If you are an employee and your company is doing a lot of transactions made by a lot of users, then SQL is the way to go.
Agree. Especially helpful would be DBMS that supports rollback on transaction. Data integrity would always be ensured even if there was a sudden power outage
>If you are a developer and are selling a product used by less than 10 simultainous users, then DBF is much easier to handle. DBFs are handled by an "embedded database engine." It is all part of the application.
The embedded database engine is what makes me itching to give
Firebird a try. If I could get this to work, the same source could be used for running the app as a standalone or in true client-server environment.
>SQL client/server databases will require an additional install and someone knowledgable enough to administer it. If you are selling an off-the-shelf product, this is going to be an issue.
True, but I think we could minimize potential problem here if we design a setup that's not that complex such as dabbling with user rights within the DBMS itself, the rights to Views, etc.
>Cost is another issue. If you are selling a product for a couple of hundred dollars, then the cost of the SQL database engine may be a shock to your customers. It can easily cost more than your application.
The solution would be using open source and free DBMS such as PostgreSQL or Firebird.
>SQL database support is another issue. Customers are going to come to you for support.
This is where I think the showstopper most likely to be. In my case, I'd have to train the support staff on SQL. Not only that, she'll have to relearn everything she knows. Right now, any calls for support can be handled by her. She'll diagnose the problem, patch the data if necessary and forward to me only those that really needs tweaking in the source. If we do migrate, a lot of my time would be taken up in doing support job instead of programming.
I think that about covers my thought on the matter. As with everything else in life everything comes in twos. Each would have their own set of pro and cons.