2010-01-25 36 views
7

Giả sử tôi có 4 thực thể trong mô hình dữ liệu của tôi: Person, Car, Pet và Photo. Tôi muốn có một mối quan hệ từ Person Car và Pet đến thực thể Photo, trong đó tôi muốn mỗi thứ trong số đó chứa đựng một bức ảnh của món đồ đó. Cho đến nay, không có vấn đề gì. Mặc dù nó được khéo léo là mối quan hệ nghịch đảo, đó là nơi thực thể ảnh muốn quay trở lại mục đính kèm. Tôi muốn hoặc không có mối quan hệ nghịch đảo nào cả, vì vậy thuộc tính duy nhất trong Ảnh sẽ là một UIImage, hoặc có thể là một mối quan hệ nghịch đảo kèm theo. Nếu tôi làm điều đó, tôi chỉ có thể chọn một trong những mục đó để gắn vào mối quan hệ của tôi.Dữ liệu cốt lõi: Mối quan hệ nghịch đảo với nhiều thực thể?

Sẽ tốt hơn nếu để đây là mối quan hệ một chiều? Có lẽ tôi có thể tạo một thực thể trừu tượng có tên là "AttachableItem" và biến Person Car and Pet thành con cái của cái này, sau đó làm cho mối quan hệ nghịch đảo của tôi trỏ đến AttachableItem. Tôi không chắc cách nào là tốt nhất.

Trả lời

12

Tôi sẽ biến Ảnh thành thực thể trừu tượng và tạo các thực thể PersonPhoto, CarPhoto và PetPhoto với Ảnh làm đối tượng gốc của nó.

Người, ô tô và thú cưng sẽ có mối quan hệ một với PersonPhoto, CarPhoto và PetPhoto tương ứng. Sau đó, PersonPhoto, CarPhoto và PetPhoto có thể có một mối quan hệ nghịch đảo duy nhất cần thiết với Person, Car và Pet, tương ứng.

Pháp nhân ảnh sẽ vẫn có thuộc tính duy nhất. Bạn có thể lưu trữ hình ảnh trong các tệp trong thư mục Documents của ứng dụng và lưu tên tệp dưới dạng thuộc tính này. Phương pháp này được đề xuất trong this answer. Ngoài ra, bạn có thể lưu trữ hình ảnh trực tiếp trong Dữ liệu cốt lõi dưới dạng thuộc tính có thể chuyển đổi bằng cách chuyển đổi chúng thành NSData bằng cách sử dụng UIImagePNGRepresentation() hoặc UIImageJPEGRepresentation().

+0

Siêu câu trả lời. Toàn bộ mô hình của tôi được đơn giản hóa sau khi đọc –

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