2015-09-08 1 views
0

Основные данные просты, эффективны и умны, если мы знаем, где их использовать, и , где не.Где не использовать данные ядра? Можно ли использовать базовые данные в качестве базы данных, например MySql?

Я играл с данными Core некоторое время.

Я хочу знать Где не использовать данные ядра.

Вопрос прост, скажем, я хочу использовать основные данные как настоящую «базу данных», такую ​​как MySql.

Есть первичный ключ, поиск, сортировать (с одним или несколькими столбцами) и т.д ..

Насколько я пытался, я не мог достичь ее.

Нет никакой полезной документации или помощи в любом месте, где я могу найти для «havePredicate».

Выбирать использование основных данных на месте БД является потенциальной ответственностью? или Если возможно, существует ли определенная «модель данных ядра», в которой она может быть выполнена или, по крайней мере, большая часть ее может быть выполнена .. (с ограничениями, которые различны)?

+0

Основные данные - это прекрасное создание высоко оптимизированных инструментов, аккуратно упакованных в рамки Objective-C, которые помогают нам управлять постоянным хранилищем (одним из примеров постоянного хранилища является база данных). Он сам НЕ является базой данных. Его часто называют условным графом.Использование основных данных зависит от ряда факторов, например, какого типа данных вы хотите хранить и как часто вам нужно получить к нему доступ? – andrewbuilder

ответ

1

Основные данные предоставляют некоторые функции, подобные базам данных, но с API, который отличается от использования необработанных SQL-инструкций. Например, объекты Core Data: примерно эквивалентны таблицам SQL, но его обработка отношений сильно отличается от того, как работает SQL. Является ли это «потенциальной ответственностью», зависит от того, что вам нужно выполнить в своем приложении. Core Data был разработан как система, которая позволяет напрямую читать и писать объекты модели, и хотя у нее есть некоторые функции, подобные SQL, мышление в терминах SQL - хороший способ испортить его.

Есть первичный ключ, поиск, сортировать (с одним или несколькими столбцами) и т.д ..

Насколько я пытался, я не мог достичь ее.

Основные данные используют собственную систему идентификации, которая служит в качестве первичного ключа. Каждый экземпляр NSManagedObject имеет свойство, называемое objectID, которое является уникальным. Вы можете добавить свои собственные поля первичного ключа, но это зависит от вас, чтобы обеспечить уникальность. Это обычно не нужно, но опять же это действительно зависит от того, что вам нужно выполнить. Поиск и сортировка встроены через NSPredicate и NSSortDescriptor. Если вы считаете это трудным или невозможным, было бы неплохо опубликовать новый вопрос с подробностями о том, что вы пробовали, и как он не смог сделать то, что вам нужно.

Нет никакой полезной документации или помощи в любом месте, где я могу найти для «havePredicate».

Он выполняет ту же задачу, что и в SQL, через NSPredicate. Синтаксис отличается, поэтому вы можете обратиться к Apple Predicate Programming Guide, чтобы узнать, как он работает. В качестве простого примера, фрагмент SQL HAVING SUM(SaleAmount) > 1000 будет реализован с чем-то вроде @sum(saleAmount) > 1000).

Смежные вопросы