Search code examples
databasedelphidelphi-xe2dbisam

Choosing Correct Database For Delphi Project


I am developing with Delphi XE2.

I am planning a software for primary and secondary school. This school have 1,500 students. The database model is relational and we plan to keep the whole history of each student as the years move on. (well at some point it will be archived, but mostly all the relationships will be maintained for a good time)

I used to write Delphi apps using DBISAM V4 from Elevate Software. I hold a licence of it, so it is still a possibility for use it.

However I had contact with many companies using Firebird recently, some using Postgres and many websites with MySQL.

I don`t see a need to go paid databases, since this type of customer is sensitive in investment. So any database that is free for such use, plus the option of keep using DBISAM. I like it but it is getting old.

I prefer to put the business logic on the software, not in the database, so no need to intricate logic or procedures on the database side.

My questions is: What I need to consider to choose the correct database?


Solution

  • This Wiki post can help you. Besides that, you have to decide for using OLE-DB, ODBC or DBX as middleware technology. Depending on which one you will find or not support for Delphi.

    Another criteria include know-how on the database options and rectrictions/requirements on security and scalability.

    However, no matter what DBMS you choose, my best advice for you is to isolate the access to it in a dedicated service layer so most of your application won't be directly dependent of it.

    In your place I would model the application in terms of domain classes and would invest in a persistence layer. If you have to go for another DBMS in the future, most of you code will be preserved.