2010-06-11 4 views
1

De la documentation:Que signifie "cardinalité d'une relation" dans Core Data?

Si toutes une règles relation d'objet géré supprimer sont Nullify, alors pour cet objet au moins il n'y a aucun travail supplémentaire à faire (vous pouvez avoir d'envisager d'autres objets étaient à la destination de la relation si la relation inverse était soit obligatoire ou avait une limite inférieure cardinalité, l'objet destination ou objets pourraient être dans un état non valide ).

Quelqu'un at-il un exemple de cette chose de cardinalité? À quoi cela sert-il et qu'est-ce qu'il est important de savoir à ce sujet? (Cela semble très important ...)

Répondre

4

La cardinalité d'une relation d'objet définit combien d'objets à l'extrémité gauche sont mappés au nombre d'objets à l'extrémité droite. Par exemple, il peut être:

  • 1 : 1 (un à un) - pour chaque objet du type gauche, exactement un objet du type droit est nécessaire. Dans ce scénario, généralement les deux objets ont un pointeur vers l'autre ou stockent l'ID unique de celui-ci. (Un à plusieurs) - pour chaque objet de type gauche, au moins un objet du bon type est requis, mais d'autres peuvent être créés. Dans ce scénario, généralement l'objet sur la gauche ne connaît pas les objets sur la droite, mais les objets sur la droite ont un pointeur ou conservent un ID unique pour l'objet gauche.
  • 1 : 0..1 (un à un optionnel) - pour chaque objet du type gauche, aucun objet du bon type n'est requis, mais s'il en existe un, il ne doit pas y en avoir plus d'un. Dans ce scénario, généralement l'objet sur la gauche ne connaît pas les objets sur la droite, mais les objets sur la droite ont un pointeur ou conservent un ID unique pour l'objet gauche.
  • 1..* : 1..* (plusieurs à plusieurs) - pour chaque objet de type gauche, au moins un objet de type correct est requis, mais un objet de type correct peut satisfaire aux exigences de plusieurs objets de type gauche. Dans ce scénario, généralement les deux objets à gauche et à droite ne connaissent pas les autres, mais ils ont tous deux un pointeur vers un troisième objet commun ou conservent un identifiant unique qui définit la relation.
  • etc.

Notez que si dans tous mes exemples que je parle de la relation de l'objet droit à l'objet gauche, chaque cardinalité peut être inversée, et certains des cardinalités précisent les exigences bi-directionnelle (c.-à- de droite à gauche et de gauche à droite)

En savoir plus sur Cardinality en ce qui concerne les modèles de données.

En particulier, le paragraphe ci-dessus de données de base indique que si vous supprimez un objet qui se trouve sur le côté droit d'une relation 1 : 1, 1 : 1..* ou 1..* : 1..* (autrement dit, un ou plusieurs autres objets dépendent de l'existence de cette objet particulier), les objets du côté gauche d'une telle relation seraient dans un état invalide.

+0

Bonne réponse. Donc, si la cardinalité est "faible" à une extrémité, cela signifie que la fin a moins d'objets. c'est-à-dire qu'une relation 1: n (un-à-plusieurs) signifierait que la cardinalité à gauche est 1, où la cardinalité à droite est n, et donc plus élevée? – dontWatchMyProfile

+0

Oui, c'est correct. Mais quelle est l'importance de la cardinalité à une fin particulière, puisqu'elle est utilisée pour définir la relation des objets, pas leur ordre. –

Questions connexes