Vous souhaitez probablement utiliser des données de base et vous le faites certainement s'il existe des relations entre les enregistrements. Sans données de base pour gérer les relations, la complexité de l'application peut faire boule de neige. Il est communément admis que Core Data gère automatiquement beaucoup de complexité, ce qui implique inévitablement des compromis sur les performances, de sorte que, même si les Core Data peuvent être faciles à mettre en œuvre, elles doivent être la solution la plus lente. Il s'avère que ce n'est généralement pas le cas en raison de l'énorme quantité de l'ajustement que Apple a fait sous le capot. Il est plutôt difficile d'écrire à la main une solution qui peut mieux traiter les données de base pour la plupart des cas d'utilisation.
Je vous recommande de commencer avec la solution Core Data la plus simple et d'obtenir plus de complexité uniquement si vous testez la solution simple et trouvez qu'elle ralentit. Je voudrais commencer par chercher une force brute et voir si c'est assez rapide. L'étape suivante consisterait à effectuer des extractions uniquement sur une seule entité de l'entité, par ex. l'attribut name
d'une entité Person
, puis récupère l'entité entière uniquement lorsque cela est nécessaire. Si cela doit encore ralentir, vous devrez penser à implémenter une sorte de structure arborescente dans le graphe d'entités (ce qui n'est pas difficile).
L'optimisation prématurée est la racine de tout mal. N'essayez pas de prendre des décisions d'optimisation sans les données générées par les tests. Vous perdrez plus de temps à long terme. Commencez simplement et ajoutez de la complexité seulement quand c'est absolument nécessaire.