2013-03-21 3 views
0

У меня есть три таблицы: Задания, вопросы присвоения ВопросыОсновные данные - Извлечение результатов путем объединения данных из двух таблиц

Назначение таблица будет иметь информацию о правопреемстве, как и его идентификатор, название и т.д.

В таблице «Задачи» будут заданы вопросы о задании и есть свойства, такие как идентификатор вопроса, название вопроса, текст вопроса и т. Д. Таблица вопросов не имеет идентификатора присваивания как свойства, так как во избежание дублирования записей в таблице «Вопросы» как более чем одно назначение вопрос.

Назначение и вопросы связаны через таблицу с именем Assignment-Questions, у которой есть идентификатор присвоения и идентификатор вопроса.

Пример: Допустим, Назначение 1 имеет 3 вопросы с ID 1, 2 и 3

На данном случае, как вопросы и присвоения Вопросы таблица будет иметь 3 записи

Далее, Назначение 2 имеет 3 вопросы с идентификаторами 4, 5 и 1 (то же, что и присвоение 1)

В этом случае таблица «Вопросы» будет содержать 5 записей (1 вопрос является общим для обоих назначений 1 и 2), а «Задачи-вопросы» будут иметь 6 записей. 3 для присвоения 1 и 2)

В этом сценарии я хочу создать контроллер выборки для извлечения всех вопросов, связанных с присваиванием 2, в том порядке, в котором он добавлен в таблицу Assignment-Questions.

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

+0

Вместо того, чтобы делать это, возможно, вы можете создать и сохранить массив вопросов, когда они будут добавлены в таблицу, а затем извлечь этот массив. – AMayes

+1

Я могу дать вам предикат, но не описать его. - Получить и сортировать объекты AssignmentQuestion * проще. Может ли это быть альтернативой? –

+0

Martin, контроллер My view полностью реализован на основе контроллера выборки. По моим сведениям, мы не можем создать контроллер выборки без дескриптора сортировки. Есть предположения? – Subhash

ответ

0

@MartinR имеет это право. Вы работаете с таблицей соединений. Я догадывался некоторых имен полей и такой, а код не тестировался, конечно, но он должен получить вы собираетесь:

fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"AssignmentQuestion"]; 
fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"question.order" ascending:YES]]; 
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"assignment = %@", assignment]; 
fetchRequest.relationshipKeyPathsForPrefetching = @[@"question"]; 

Затем в VC вы можете работать на FRC объектов AssignmentQuestion:

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    Question* question = [[_fetchedResultsController objectAtIndexPath:indexPath] question]; 
    ... 
} 
Смежные вопросы