Вы придерживаетесь подхода к базе данных, основанного на таблицах и идентификаторах для связи этих таблиц.Это неправильно в Core Data, вы должны следовать подходу объектного графа, и CoreData преобразует его в соответствующую базу данных SQlite полностью прозрачным для вас способом.
Итак, учитывая сущности ° Ресторан "и" Меню ", высоздаст: - в объекте "Ресторан" отношение 1-ко-многим к "Меню", называемому "меню" - в объекте "Меню" отношение 1-ко-многим к "Ресторану", которое называется "рестораны"
Вам просто нужно добавить каждое меню ресторана в NSSet, соответствующее отношениям меню для данного меню, и наоборот. Как вы видите, таким образом вам не нужно заботиться об идентификаторах, а только об объекте.отношения.
Что касается повторяющихся данных, это зависит от вас. Обычно у вас должен быть способ определить уникальность объекта (например, название меню, название ресторана), а затем попытаться получить его изБазовые данные перед добавлением их в качестве нового объекта.