восстановить данные, используя несколько таблиц в основных данных в iPhone - PullRequest
1 голос
/ 15 марта 2012

На самом деле у меня есть три таблицы: empName (empId, empName), empSalary (empId, зарплата), empBonus (зарплата, бонус).

А у меня есть имя и мне нужно найти бонус.

Итак, моя логика заключается в том, что сначала при поиске по имени я найду empId, затем по empId найду зарплату и, наконец, по зарплате найду бонус из таблицы empBonus.

Как мне добиться следующих вещей в основных данных в iPhone.

Ответы [ 2 ]

0 голосов
/ 15 марта 2012

Прежде всего вы должны перестать думать в таблицах. Core Data не является оболочкой для SQlite. Если вы хотите, чтобы таблицы не использовали Core Data и использовали SQLite.
Базовые данные - это граф объектов и постоянная структура. У вас есть сущности вместо таблиц.

Поскольку вы говорите о таблицах, я понятия не имею, чего вы на самом деле хотите, но ваша модель данных может выглядеть следующим образом:

enter image description here

или это:

enter image description here

(отношение Сотрудник-> Зарплата на последнем скриншоте должно быть слишком большим, я забыл вставить это в модель.)

и поскольку у вас есть граф объектов, вы можете получить все объекты в этом графе.
Для последней модели примера ваш код может выглядеть так:

Employee *myEmployee = /* do a fetch to get an Employee */
NSSet *salaries = myEmployee.salaries;
Salary *salary = /* choose one from the salaries set */
Bonys = salary.bonus;
0 голосов
/ 15 марта 2012

Используйте взаимосвязи между данными, чтобы каждый раз, когда вы находите имя, он также находил зарплату и бонус из других таблиц. Смотри здесь

Я бы не делал необработанные sqlite запросы, если у вас есть такой уровень знаний Core Data и Sql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...