views:

57

answers:

2

We are in the process of developing a client-server software (in C#, Net 2.0)which can be sold off the shelf. The product is in Medical domain.

Can anyone suggest the best possible database for the following conditions:

  1. Should be able to distribute it free to the customers.
  2. Customers should be able to add images too to the database.
  3. Small footprint.
  4. Fast, stable, secure and does not crash.

We are working on MSSQL 2005 Express and Mysql 5.0. Any better database which you can suggest?

+1  A: 

You can check out SQLite. It meets all of your criteria. It also has the amazing ability to be used cross-platform. It's the database of choice for iPhone development, and it's often used on Windows and Linux environments, as well!

Eric
Can it support GB sized databases? As the clientele which we deal with are not technical. They upload the images into the application directly from the digital camera. They don't resize. hence we think the database would be too big.
Kalpak
Don't know how big you're thiking, but here's some perspective on size: http://stackoverflow.com/questions/784173/what-are-the-performance-characteristics-of-sqlite-with-very-large-database-files/786146#786146
Eric
+2  A: 

A good idea would be to write your software using NHibernate, as the framework supports many different databases with only a change in configuration settings. The reason I suggest this is because clients MAY have a database license already and they may want your software to use that database type.

So I suggest keeping your app flexible while offering an off the shelf database recommendation.

Zoidberg
It is highly possible that the clients will not have database licence as they are all non technical people. Also I did like the suggestion of NHibernate. But I have heard that it has a big memory-footprint and is slower than actually interfacing with the database.
Kalpak
@Kalpak: an ORM is an additional layer between your app and the database, so it will necessarily consume more memory and be slower than directly interacting with the database. It's an engineering trade-off, but not necessarily a bad one for your application.
MusiGenesis
I guess it depends... higher level languages such as C#, java etc. are a MUCH slower than C and C++, but you trade off for easier maintenance of your application, plus you have faith that the people who developed the compiler are as good or better than at code optimization at a lower level. Same goes for NHibernate or ORM, I assume they are better 90% at optimizing queries and data access.
Zoidberg