2011-12-22 9 views
5

Mam problem z zaprojektowaniem modelu coreData, w którym mam tylko jeden typ wpisu o nazwie "Zadania do wykonania". Każdy wpis czynności do wykonania ma relacje 0, 1, 2, ... lub n z innymi (pod) pozycjami, podobnie jak czynności do wykonania. Zatem relacje między zadaniami do wykonania projektują strukturę drzewa z nieokreśloną liczbą węzłów potomnych. Poniższy rysunek ilustruje przypadek należy (E = rdzeń wprowadzania danych)Podstawowe dane: Jak zaprojektować strukturę danych drzewa z jednego podstawowego wpisu danych

  E        
      /|\       
     /| \      
     E E E      
     /\    
    / \   
     E  E    
    /|\     
    E E E   

Domyślam się model, że dane, jak zilustrowano na poniższym wykresie. Nie wybrałem odwrotnej relacji, ponieważ Xcode tworzył z niej relację wiele do wielu, która nie pasuje do projektu drzewa.

enter image description here

Również widziałem w data model inspector coś o nazwie "pozycja dominująca". Tak więc zacząłem wierzyć, że będę musiał stworzyć drugi wpis o nazwie "To-Do-Child" z tymi samymi atrybutami i wprowadzić drugi wpis do pozycji nadrzędnej. Instrukcja mówi mi, że to może być źle ścieżka iść ...

pytania:

  1. Jak mogę Model ten podejście w pliku modelu danych rdzenia? Czy jedna z wymienionych jest prawidłowa?

  2. Jak mogę pobrać wszystkie wpisy do wykonania określonego węzła nadrzędnego? Ponieważ powstają z tego samego wpisu, mam problem z podaniem dokładnego poddrzewa, które chcę zrobić.

+0

Wystarczy link do tego pytania, które jest trochę bardziej użyteczne niż zaakceptowana odpowiedź http://stackoverflow.com/questions/16633907/model-a-tree-structure-in-core-data –

Odpowiedz

3

myślę, że trzeba relację parent (podmiot docelowym jest twoja zrobić podmiot), który służy jako miejsce dla relacji odwrotnej.

Wpisy w górnej części drzewa mają wartość zerową dla tej relacji.

W przypadku każdej rzeczy do zrobienia, zestaw zwrócony z relacji childToDos pomieści wszystkie dzieci. Nie ma znaczenia, że ​​są one tej samej klasy.

+0

Aha, fajny pomysł. Ale wtedy przyszło mi na myśl, dlaczego nie zdefiniować drugiej relacji o nazwie "rodzic". Czy nie byłoby to również możliwe bez posiadania nowego atrybutu? Więc pierwszym podejściem do relacji z samym sobą byłoby właściwe podejście? –

+0

Prawidłowo, o to mi chodziło, przepraszam. Zaktualizowałem odpowiedź. – jrturton

Powiązane problemy