2010-01-25 11 views
7

Disons que j'ai 4 entités dans mon modèle de données: Person, Car, Pet et Photo. Je voudrais une relation de Person Car et Pet à l'entité Photo, en ce sens que j'aimerais que chacune de ces choses contienne une photo de cet objet. Jusqu'à présent, pas de problèmes. Bien que cela devienne difficile est la relation inverse, qui est l'endroit où l'entité photo voudrait pointer vers l'élément ci-joint. Je préférerais ne pas avoir de relation inverse du tout, donc le seul attribut dans Photo serait un UIImage, ou peut-être une relation unique attachée. Si je fais cela, je pourrais seulement choisir un de ces éléments à attacher à ma relation.Données de base: une relation inverse à plusieurs entités?

Serait-il préférable de laisser cette relation unidirectionnelle? Peut-être que je pourrais faire une entité abstraite appelée "AttachableItem" et faire de la voiture de personne et de l'animal de compagnie des enfants de ceci, alors faire mon point de relation inverse à AttachableItem. Je ne suis pas sûr de savoir quel serait le meilleur.

Répondre

12

Je voudrais faire de Photo une entité abstraite et créer des entités PersonPhoto, CarPhoto et PetPhoto, chacune avec Photo comme entité parente. La personne, la voiture et l'animal familier ont respectivement une relation personnelle avec PersonPhoto, CarPhoto et PetPhoto. Ensuite, PersonPhoto, CarPhoto et PetPhoto peuvent chacun avoir une seule relation inverse requise avec une personne, une voiture et un animal de compagnie, respectivement.

L'entité Photo aurait toujours l'attribut unique. Vous pouvez stocker les images dans des fichiers du répertoire Documents de votre application et enregistrer le nom de fichier en tant que cet attribut. Cette approche est recommandée dans this answer. Alternativement, vous pouvez stocker des images directement dans les données de base en tant qu'attribut transformable en les convertissant en NSData en utilisant UIImagePNGRepresentation() ou UIImageJPEGRepresentation().

+0

Super réponse homme. Mon modèle entier est simplifié après avoir lu ceci –

Questions connexes