2011-12-22 38 views
5

Tôi đang gặp khó khăn khi thiết kế mô hình coreData nơi tôi chỉ có một loại mục được gọi là "Việc cần làm". Mỗi mục Công việc phải có các mối quan hệ 0, 1, 2, ... hoặc n với các mục nhập (phụ) khác giống như Việc cần làm. Vì vậy, các mối quan hệ giữa các mục công việc phải thiết kế một cấu trúc cây với một số nút con không xác định. Đồ họa sau đây sẽ minh họa cho trường hợp (E = mục nhập dữ liệu cốt lõi):Dữ liệu cốt lõi: Cách thiết kế cấu trúc dữ liệu cây từ một mục dữ liệu chính

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

Tôi đoán là mô hình dữ liệu đó như được minh họa trong biểu đồ sau đây. Tôi đã không chọn mối quan hệ nghịch đảo bởi vì Xcode đã tạo ra mối quan hệ nhiều-nhiều với nó mà không khớp với thiết kế cây.

enter image description here

Ngoài ra tôi đã thấy trong data model inspector một cái gì đó gọi là "entry cha mẹ". Vì vậy, tôi bắt đầu tin rằng tôi có thể phải tạo một mục nhập thứ hai có tên là "To-Do-Child" với cùng thuộc tính và làm cho mục nhập khác vào mục nhập cha. Hướng dẫn nói với tôi rằng đây có thể là con đường sai để đi ...

Câu hỏi:

  1. Làm thế nào tôi có thể mô hình tiếp cận này trong lõi tập mô hình dữ liệu? Là một trong những cái được đề cập chính xác?

  2. Làm cách nào để tôi có thể tìm nạp tất cả các mục công việc của một nút cha được chỉ định? Vì chúng phát sinh từ cùng một mục, tôi có vấn đề để giải quyết chính xác công việc cần làm mà tôi muốn.

+0

Chỉ cần liên kết đến câu hỏi này hữu ích hơn một chút so với câu trả lời được chấp nhận http://stackoverflow.com/questions/16633907/model-a-tree-structure-in-core-data –

Trả lời

3

Tôi nghĩ bạn cần mối quan hệ của parent (thực thể đích là thực thể của bạn) làm điểm đến cho mối quan hệ nghịch đảo.

Các mục nhập ở trên cùng của cây có giá trị bằng 0 cho mối quan hệ này.

Đối với bất kỳ mục công việc nào, tập hợp được trả về từ mối quan hệ childToDos sẽ giữ tất cả các trẻ em. Nó không quan trọng là chúng thuộc cùng một lớp.

+0

Aha, ý tưởng hay. Nhưng sau đó nó đến với tâm trí của tôi tại sao không xác định một mối quan hệ thứ hai có tên là 'cha mẹ'. Nó sẽ không thực hiện thủ thuật cũng như không có thuộc tính mới? Vậy cách tiếp cận đầu tiên với mối quan hệ bản thân sẽ là cách tiếp cận đúng đắn? –

+0

Đúng, đó là điều tôi muốn nói, xin lỗi. Tôi đã cập nhật câu trả lời. – jrturton

Các vấn đề liên quan