I am developing an application that needs to store many records in an organized way. In particular, I am writing a personal finance application. As you can imagine, this application will contain records of financial transactions, which must be sorted in different ways: by date, amount, recipient, account, etc. And, of course, the application should quickly get, say, all transactions between certain dates, quickly summarize some records, etc.
I'm still in the design phase, and I plan to use SQLite as the internal storage for the application, since OS X already comes with the SQLite infrastructure. I thought it would be nice to ignore the database connection level so that I could reuse the code in other projects, and then I thought that maybe someone else could do it.
Then I thought that this might not be a good idea. I got a little familiar with CoreData on OS X and thought that maybe I should use CoreData for this purpose. However, I do not know if CoreData really matches my goals. This is more like a way to abstract from application controllers and associate user interface widgets with models, rather than providing an API to quickly and easily launch possibly complex queries about structured data.
So my question is really three related parts:
- Is there an ORM for Cocoa? I am looking for something like a Django ORM or Rails ActiveRecord layer. (I only need to connect it to SQLite databases.)
- Or should I just use CoreData for this? Will it fit my needs well?
- , ?