Bonjour @mbritto et @Draken,
Je pense partir sur des fichiers .plist pour les données systèmes et une base de donnée (Realm ou CoreData, je ne sais pas encore) pour les données utilisateurs.
Cependant, il me reste une question:
Imaginons que j’ai besoin d’une base de donnée comme celle suivante (schéma de base de donnée comme si il n’y avait que une seule DB, en MySQL par exemple):

Donc en résumé:
J’ai 4 tables dans ma base de donnée: une table pour les niveaux (du jeu), une table pour les sons (qui sont joué dans mes niveaux, un niveau pouvant avoir plusieurs sons, et un même son pouvant être dans plusieurs niveaux), une table pour les parties (jouées par le joueur) et une table joueur (dans le cas où un joueur peut avoir plusieurs comptes par exemple).
Si j’ai bien compris, les données systèmes seraient les tables: niveaux, sons, et niveaux_sons.
Et les données utilisateurs: parties et joueurs.
Les données systèmes étant les données qui ne change pas lorsque le joueur joue, et les données joueurs étant les données que le joueur fait évoluer au fur et à mesure qu’il joue.
Si je sépare donc ces bases de données dans un fichier .plist et le reste dans une base de donnée, pour faire le lien entre mon fichier niveaux.plist et ma table parties, je devrais alors utiliser l’ID du niveau (contenu dans mon fichier .plist) pour le stocker dans ma table parties, juste?
Ce qui revient, si nous étions dans le cas d’une seule base de donnée, à deux tables sans relations définie directement dans la base de donnée.
Donc, si j’ai 20 niveaux par exemple, la base de donnée acceptera un id_niveau « 21 » même si le niveau n’existe pas. Je dois alors faire les vérifications dans mon code directement au lieu de laisser la base de donnée gérer tout ça (comme en Web avec MySQL par exemple)?
Ensuite, pour la table « niveaux_sons » qui est en fait la table d’une relation many to many dans une base de donnée traditionnelle, dans mes fichiers .plist, je devrai alors également créer un fichier niveaux_sons.plist, qui servirait de lien entre mon fichier niveaux.plist et sons.plist?
En séparant en deux ma base de donnée (fichier .plist et Realm ou CoreData), j’ai peur que ce ne soit pas maintenable dans le temps (je pense que c’est surtout dû au fait que je n’ai pas l’habitude de faire comme ça)… Mais comme l’a dit @Draken plus haut, séparer les données utilisateurs des données systèmes me parait vraiment bien, car alors, dans ce cas-ci, par exemple, lorsque je dois ajouter des niveaux, ou des sons, je les ajoutes dans mes fichiers .plist et je n’ai « plus qu’à » les pousser sur l’AppStore pour que les joueurs en profite, et je ne modifierai donc pas les données utilisateurs.
(Le schéma de la base de donnée n’est pas vraiment complet, je l’ai un peu simplifié, puisqu’il ne sert qu’à illustrer mon exemple)
Merci de m’avoir lu et merci pour vos commentaires
,
Alexandre.