Я разрабатываю приложение, которое должно хранить множество записей организованным способом. В частности, я пишу приложение для личных финансов. Как вы можете себе представить, это приложение будет содержать записи финансовых транзакций, которые должны быть отсортированы различными способами: по дате, по сумме, по получателю, по счету и т. Д. И, конечно, приложению нужно будет быстро получить, скажем, все транзакции между определенными датами, быстрое суммирование некоторых записей и т. д.
Я все еще на этапе разработки, и я планирую использовать SQLite в качестве внутреннего хранилища для приложения, поскольку OS X уже поставляется с платформой SQLite. Я подумал, что было бы неплохо абстрагироваться от уровня соединения с базой данных, чтобы я мог повторно использовать код в других проектах, а потом подумал, что, возможно, кто-то еще мог это уже сделать.
Тогда я подумал, что это может быть не очень хорошая идея. Я прочитал немного о CoreData на OS X и подумал, что, возможно, мне следует использовать CoreData для этой цели. Однако я не знаю, соответствует ли CoreData моим целям. Это больше похоже на способ абстрагировать контроллеры приложения и привязать виджеты пользовательского интерфейса к моделям, а не предоставлять API, который позволяет быстро и легко выполнять, возможно, сложные запросы к структурированным данным.
Так что мой вопрос на самом деле состоит из трех взаимосвязанных частей:
- Есть ли ORM для какао? Я ищу что-то вроде слоя Django ORM или RailR 'ActiveRecord. (Мне нужно только это для подключения к базам данных SQLite.)
- Или я должен просто использовать CoreData для этого? Будет ли это хорошо соответствовать моим потребностям?
- Или я лаю не на том дереве и должен искать другую структуру, которая выполняет мои цели с помощью другой техники?