2010-01-25 12 views
7

Digamos que tengo 4 entidades en mi modelo de datos: Persona, Coche, Mascota y Foto. Me gustaría una relación de Person Car y Pet a la entidad Photo, en el sentido de que me gustaría que cada una de esas cosas contenga una foto de ese elemento. Hasta ahora, no hay problemas. Sin embargo, donde se pone complicado es la relación inversa, que es donde la entidad fotográfica querría señalar el elemento adjunto. Preferiría no tener ninguna relación inversa, así que el único atributo en Photo sería un UIImage, o tal vez una sola relación inversa de ItemItem. Si hago eso, solo podría seleccionar uno de esos elementos para adjuntar a mi relación.Datos principales: ¿una relación inversa con entidades múltiples?

¿Sería mejor dejar esto como una relación unidireccional? Tal vez podría hacer una entidad abstracta llamada "AttachableItem" y hacer que Person Car y Pet sean hijos de esto, y luego hacer que mi relación inversa apunte a AttachableItem. No estoy seguro de qué manera sería la mejor.

Respuesta

12

me gustaría hacer fotos una entidad abstracta y crear entidades PersonPhoto, CarPhoto y PetPhoto cada uno con fotos como su entidad matriz.

persona, coches, y mascotas tendría una relación a uno con PersonPhoto, CarPhoto y PetPhoto, respectivamente. Luego, PersonPhoto, CarPhoto y PetPhoto podrían tener una sola relación inversa obligada con Persona, automóvil y mascota, respectivamente.

La entidad de fotos todavía tendría el atributo individual. Puede almacenar las imágenes en archivos en el directorio Documentos de su aplicación y guardar el nombre del archivo como este atributo. Este enfoque se recomienda en this answer. Alternativamente, puede almacenar imágenes directamente en datos centrales que un atributo transformable mediante la conversión a NSData usando UIImagePNGRepresentation() o UIImageJPEGRepresentation().

+0

hombre Súper respuesta. Todo mi modelo se simplifica después de leer esto –

Cuestiones relacionadas