Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование iOS/iPhone
Войти
Регистрация
Восстановить пароль
 
smth
179 / 48 / 6
Регистрация: 23.06.2011
Сообщений: 248
1

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

31.05.2016, 21:12. Просмотров 812. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2016, 21:12
Ответы с готовыми решениями:

Наладить связи между практически одинаковыми таблицами таблицами
Помогите пожалуйста со следующей затыкой. Выбираю &quot;Схема данных&quot;. Там...

Перенос данных между таблицами + проверка на Уникальность
Есть 2 таблицы, table1(A,B,C,D,E) и table2(T,A,D,E,G,C,B,O,M) Нужно перенести...

Связи между таблицами
Знающие ребята, подскажите пожалуйста, правильно ли я связал следующие таблицы?...

Связи между таблицами
Подскажите плз как установить связь например между Родительской Регион /...

Связи между таблицами
использую VS win forms и sql server, где лучше хранить связи таблиц? на sql...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2016, 21:12

Связи между таблицами
Помогите новичку! Объясните, можно ли к разным записям одного поля привязать...

Связи между таблицами
Имеется две таблицы связанные друг с другом. В acceses связь работает, а вот в...

Связи между таблицами
Здравствуйте, помогите со связями между таблицами работаю в mysql 5.5 command...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru