Base de données relationnelle

Bonjour à tous, j’ai longtemps programmé sur Windev sur PC et je me mets ici à suivre ce cours de grande qualité.

J’ai été dans le cours jusqu’à la création du logiciel SafetyFirst. Au fur et à mesure de la formation, je mets en pratique ce que j’apprends pour faire ma propre application en parallèle. J’utilise REALM.

J’ai donc créé une application avec la liste de mes patients. J’ai également créé une fenêtre pour afficher mes comptes rendu. Dans une base de données relationnelle, j’aurai un index automatiquement incrémenté et géré par la base de données et j’aurai cet index dans ma table « Compte rendu ». Sauf qu’ici, je ne sais pas comment faire.

Ce que j’ai essayé de mettre en place, c’est que dans ma classe consultation, j’ai créé un ‹ let › de type objet patient. Quand je créé une observation, je fais bien passer dans mon ObservationManager l’objet patient et il apparait bien dans la base de données. Lorsque je fais un FOR sur toutes les itérations de mon objet Consultations, tout est bien présent. Je suis cependant embêté pour faire une QUERY en passant comme paramètre de recherche cet objet. ça ne fonctionne pas.

Ma première question est donc : comment faire pour que ça puisse fonctionner.

Ma seconde question serait : est-ce que je me suis un peu compliqué la vie, car ça m’oblige à gérer moi même les relations entre les différents objets ?

Salut @Amgfrit,

Realm propose de créer des relations entre les objets sans pour autant avoir d’id. Ils présentent les différents types de relations disponibles ici : https://realm.io/docs/swift/latest/#relationships

Si tu as accès à ton objet container, tu peux facilement retrouver tes objets contenus via des tableaux classiques.

Si par contre tu as besoin de trouver des objets uniques via des id, tu peux ajouter au besoin un champ id (je te conseille un type string avec un UUID à l’intérieur plutôt qu’un auto-incrément entier) sur tes objets. Avec ça tu pourras retrouver et comparer des objets via leurs id.
Mais très souvent avec Realm on n’a plus vraiment besoin d’id dans nos objets grâce aux relations justement.

Merci beaucoup, j’y suis finalement arrivé avec un :

request.predicate = NSPredicate(format: « client == %@ », searchedClientInParameter) où client est dans la relation et searchedClientInParameter l’objet passé en paramètre.

1 « J'aime »