Hi  Roelof,

This is a very broad question with a lot of options, there is no short answer.

If I had to choose a relational database approach from the beginning,
I would choose Sqlite, it's a very nice db, small, fast, works very well with Pharo (I used it some time ago with FFI, didn't know about native boost mapping, it's cool),
can be used with other guis and tools and, should my data or  requirements
grow unexpectedly, I could move to Postgresql or some other bigger db without too much stress.

For an object approach , I would still choose a relational db for storage (same as previously) with an object relational mapping framework like Glorp on top of it, not an object system for storage (magma or gemstone - I'm not saying that they are bad!).

Beware that relational system (like object systems) will require some specific skills at some point (I like relational systems for myself, but very often see they are widely misunderstood, even by those who develop with).

In any case, if I were you, I would first choose to defer my choice :) until I have a more detailed idea of what I want/have to do, and I would start very small with a file based approach (STON) and a Data Access Layer of my own on top of it, so that I could adapt it to my future requirements or choices (relational, object or nosql database like mongo). I would even develop this DAL later and start with a single document approach (a simple read/write of the whole stuff with STON).

The most important is : don't get lost in underlying technical choices from the beginning (plus it's bad for health), make choices you can change. And stay focused on your goal : your application.

my 2c


Regards,
Alain


Reply via email to