Base de données de plusieurs-à-plusieurs relations Prédicat question
Dans ma Base de Données modèle que j'ai deux entités: la Liste et le Patient. La liste a un attribut appelé "nom".
Une Liste peut avoir n'importe quel nombre de Patients, et les Patients peuvent appartenir à n'importe quel nombre de listes différentes. J'ai donc fixé une relation sur la Liste appelée "patients" qui a un inverse à beaucoup de relation avec le Patient ET la relation sur le Patient appelle "listes", qui a une relation à la Liste.
Ce que j'ai du mal à comprendre comment créer un Prédicat qui va sélectionner tous les Patients appartenant à un nom de la Liste.
Comment pourrais-je aller à ce sujet? Je n'ai jamais utilisé avant les relations dans la Base de Données.
Merci,
Vous devez vous connecter pour publier un commentaire.
Donné un modèle de données comme:
Liste <<-->> le Patient,
vous pouvez trouver tous les Patients instances qui appartiennent à une liste avec un nom particulier avec une demande de récupération sur le Patient entité à l'aide d'un prédicat comme:
en supposant
listName
est unNSString
exemple avec le nom de la liste que vous voulez.LIKE[cd]
ne la casse et diacritiques insensibles à la comparaison.Cela semble fonctionner OK:
Où ma liste est une Liste réelle de l'entité.
Il semble que votre modèle de données est: est-ce
Liste <<-->> le Patient
Je pense que si vous connaissez la liste nom, puis vous connaissez la liste d'objets. Si oui, il vous suffit de prendre les patients à l'aide de la relation de la Liste pour le Patient-c'est un ensemble de patient objets. Par exemple, si la relation à partir de la Liste des Patients est nommé "patients":
Note: ceci implique de créer les sous-classes pour vos objets gérés de sorte que vous pouvez accéder aux attributs et les relations que les propriétés des objets.
Si vous ne connaissez que le nom de la liste pour une raison quelconque, et l'extraction de Patient objets, alors vous pouvez créer un prédicat à l'aide de la relation du Patient à la Liste (à supposer qu'il a nommé "listes" et la liste de nom dans une chaîne nommée "listName"):
NSSet *patientSet = [listObject valueForKey:@"patients"];