/ / Motivo per l'impostazione delle relazioni tra le entità nei dati principali: ios, oggettivo-c, core-data, entità

Motivo per l'impostazione delle relazioni tra entità nei dati principali: ios, ogg-c, core-data, entità

Dopo aver appreso delle relazioni traentità in Core Data. Non vedo la vera ragione per impostare la relazione tra due entità: possono essere collegate separatamente se una delle entità contiene una proprietà che può contenere un'altra entità avendo una proprietà di tipo NSManagedObject.

@property (nonatomic, strong ) NSManagedObject *AssetType;

risposte:

2 per risposta № 1

Questo è un concetto che devi capire: Core Data non è un database ma è un graph manager di oggetti e, come seconda funzionalità, offre la persistenza (ad es utilizzando, ad esempio, un negozio Sqlite).

Detto questo, se hai due entità separate eè necessario recuperare i valori in base alle condizioni che appartengono all'altra entità, è necessario eseguire due richieste e filtrare i risultati in memoria. Al contrario, se imposti una relazione, puoi semplicemente creare una richiesta con un predicato specifico e lasciare che i dati di base recuperino i risultati corretti per te. Inoltre, attraverso le relazioni è possibile accedere agli oggetti che appartengono a un'altra entità semplicemente come accedere a un oggetto proprietà. Ad esempio, il seguente snippet dice che basato su entityA Posso accedere a chiamate di proprietà someRelationship che consente di recuperare una (o più) entità di tipo EntityB. Se someRelationship è stato impostato per: molti ne riceverai uno o più EntityB entità.

entityB = entityA.someRelationship;

Il vero consiglio è pensare in termini di grafico degli oggetti!!!

Ulteriore riferimento: Panoramica dei dati principali di objc.io.

Aggiornamento 1

L'altro grande vantaggio è che le relazioni ti permettono di trarre vantaggio dalle regole di cancellazione e, attraverso relazioni inverse, sei in grado di mantenere l'integrità del tuo grafico.

Vedere Relazioni e proprietà recuperate.