-
Gérer les associations
Bonjour,
étant novice en programmation, je me heurte à un petit problème d'organisation. Je ne sais pas quelle est la meilleure solution pour faire face à mon problème.
J'utilise un exemple afin de montrer de façon simple un cas qui me pose problème:
une class Film possède des attributs titre, titre original, date de sortie, synopsis etc ... cependant un film possède aussi des acteurs. Ces acteurs sont des personnes, j'ai donc crée une classe Personne. J'aurais pus prendre la solution simple qui consiste à ce que chaque film charge lui-même ses propres acteurs dans une liste, cependant j'ai pour cela mis en place les QSharedPointer afin de pouvoir partager mes pointeurs d'objets dans toute l'application. Et je souhaite qu'un film puisse afficher ses acteurs, mais qu'un acteur puisse aussi afficher les films dans lequel il a joué. J'avais pensé pour cela à une sorte de gestionnaire qui s'occuperait de mettre en relation tous les objets, cependant cela implique de passer par lui pour chaque ajout de relations entre objet, ce qui est assez lourd à gérer.
J'aimerais donc savoir comment vous vous faites pour organiser ces associations, et quelle solution est la plus viable pour un projet qui sera assez gros en terme de gestion de données et où chaque donnée pourra être lié à une autre.
-
Bonjour,
Ton problème est très vague.
QT t'offre la possibilité de gérer ce genre de complexité très facilement, en passant par l'usage d'une base de données. Personnellement j'ai un projet dans lequel il y a un certain nombre (je dirais une trentaine) de relations de ce type, et ca se passe très bien.
Pour cela, utilise les fonctionnalités QTsql (outils de gestion de base de données) et les concepts Modele/Vue de QT.
Comme je ne suis pas très bon pour réinventer la poudre, je te renvoie 1) à la documentation de QT (ici), plutot bien faite, ainsi qu'aux tutoriaux de ce site (là).
J'ai volontairement choisi les liens les plus généraux, il te suffira de choisir la rubrique qui t'intéresse (SQL et liés).
Par contre, si ce n'est pas encore fait, il sera temps de choisir une base de données pour stocker tout cela. Pour cela je ne suis pas compétent pour orienter ton choix. Pour essayer, le plus simple est d'utiliser SQLite, qui est inclus par défaut dans QT.
Voila. Espérant avoir pu t'aider, même après tant de temps :)
A bientôt
M.P.