Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

CoreData: из-за связи между таблицами нельзя добавить проверку на уникальность поля - Программирование iOS

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование iOS Google ошибочно распознает ссылки формата tel http://www.cyberforum.ru/ios-dev/thread1750590.html
Здравствуйте, занимаюсь разработкой моб. приложений с помощью конструктора. Имеется более 5 действующих приложений которые есть и в app store и google play. Так вот в 4 приложениях при написании...
Программирование iOS Договор на продажу приложения Все привет. Хочу продать свое приложение из апп стора, есть покупатель. Может кто скинуть шаблон договора для подобной сделки? Какие моменты нужно отдельно осветить? http://www.cyberforum.ru/ios-dev/thread1745945.html
Программирование iOS C++(Objective-c++) для iOS разработчика
В каких областях это применяется и на сколько он нужен iOS разработчику? п.c Поиск использовал нашел 1 тему, но хотелось бы более развернутых ответов и мнений . Спасибо!
Программирование iOS Тинькофф Банк. Тестирование нового банковского приложения
С 1 августа 2016 года Тинькофф Банк планирует запуск нового приложения "Тинькофф под рукой" на всех мобильных платформах — Windows Phone, Anrdoid и iOS. Мы предлагаем своим клиентам принять участие в...
Программирование iOS Apple configurator http://www.cyberforum.ru/ios-dev/thread1729659.html
Добрый день! Могу ли я через эту программу удаленно устанавливать удалять программы на айпаде? Зайти и внести корректировки на пользовательском уровне ( настройки в приложении) И если программе не...
Программирование iOS Администрирование почтового домена iCloud.com У меня есть 100 почтовых ящиков на icloud.com Стоит задача контролировать всю историю переписки и всю почту. Сейчас я подцепил в Outlook все почтовые ящики и создал правило по удалению старых... подробнее

Показать сообщение отдельно
smth
177 / 46 / 6
Регистрация: 23.06.2011
Сообщений: 248

CoreData: из-за связи между таблицами нельзя добавить проверку на уникальность поля - Программирование iOS

31.05.2016, 21:12. Просмотров 651. Ответов 0
Метки (Все метки)

Добрый день!
До прошлой недели я всячески избегал работы с Core Data, но момент настал. Почитал мануалы на apple, raywenderlich, tutsplus итд, сижу, играюсь.. И доигрался до такой проблемы:
Предположим, есть 2 таблицы:
Employees {
id:String, уникальный
fullName:String
},
Departments {
name:String, уникальный
}

Связаны они так:
Departments <--optional---------------inverse------------non_optional-->>Employees
то есть, у Department может быть 0 и больше Employees, а вот у Employee должен быть один и только один Department. Inverse relation использую для того, чтобы избежать проблем с целостностью данных (примеров, чем грозит неиспользование, достаточно).

Схема вплоне логичная с точки зрения MySql, например, но Core Data странно ругается:
error: Misconfigured Entity: Entity Department cannot have uniqueness constraints and to-one mandatory inverse relationship Employee.department
То есть, он говорит, что если я хочу использовать обязательную связь один-ко-многим с инверсией (как это по русски-то?), то таблица Departments не может иметь уникальных полей. И правда, удаляю проверку на уникальность у Departments.name - все отлично. Также предлагается несколько костылей: убрать инверсию (что грозит проблемами с целостностью), сделать связь Employees->Departments необязательной, убрать проверку уникальности и делать это в коде.. Но это все костыли, я хочу понять, может, я где-то ошибся, так как нигде не находил "официальных" текстов насчет подобных ограничений? Если же они реально есть - то прошу дать на них ссылку, чтобы я мог ознакомиться, что можно делать, а что нельзя.

Добавлено через 3 часа 55 минут
Прошу прощения, я неправильно стрелку нарисовал, а отредактировать уже не могу. Связь выглядит так:
Departments <--non_optional---------------inverse------------optional-->>Employees
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru