Le projet est très intéressant intellectuellement, donc, te permettre de voir plus clair ne peux que me permettre de progresser.
Oui, c'est en rapport avec la sensibilité des données mais également des reglementations differentes pour acceder aux données de leurs citoyens. Disons qu'il y a un soucis de respect des principes juridiques de chaque pays qui soutendent ce choix.
J'avais bien vu cela, mais, si on considère que l'on utilise un même modèle objet pour toutes les bases en ne changeant que la connexion, où va être intégré la "réglementation diffenrente pour accéder aux données ..."
Je pense que les problèmes de réglementation, à eux seul, mériteraient une sacré étude, notamment sur le "comment les intégrer dans un modèle objet unique" pour les données... Et, si on arrive à intégrer cette notion dans le modèle unique, la fusions des bases pays ne pose presque plus de problèmes et beaucoup de solution.
Effectivement, il y a la possibilité d'utiliser le module FEDERATED, mais quel va être la pérennité d'une tel solution ? A noter que dans les dernières versions de MySql, il est possible de découper une (ou plusieurs) tables en fonction d'un paramètres qui pourrait ici être le pays. Mais on en reviens toujours au mêmes problèmes de performances (quoique, avec la nouvelle solution, les index sont consolidés) et une séparation des règles de gestions qu'il faudra inclure dans le moteur objet, ce qui rend caduque tout intérêt de séparation des bases.
Doctrine est à ma connaissance un des meilleurs (si pas le meilleur) ORM disponible sous PHP (je ne maîtrise pas suffisamment celui de zend pour comparer). L'intégration avec le reste de symfony, lui donne beaucoup plus de puissance, tous en gardant la souplesse.
Il est parfaitement possible d'envisager deux connexions, une sur la BD principale et, une fois les paramètres récupéré, une sur la base du pays, mais avec un modèle objet unique, ce qui, j'y reviens, rend caduc la notion de séparation des bases par sécurité.
Si dans un modèle abonne (qui correspond à la table abonne dans chaque BD pays ) serait-il possible, à partir du module abonne requeter la base d'un pays en fournissant à doctrine l'objet connexion de cette BD et réceptionner les données dans le modèle abonne ?
oui
Si nous savons que toutes les BD pays ont les mêmes tables, avec les mêmes schema, ils devraient pouvoir partager les mêmes modèles.
Oui
Mais je ne suis pas sur d'avoir compris au fond comment doctrine organise le mapping entre la BD et les modèles du projet symfony.
Ceci demande quelques souffrances liées à l'apprentissage, mais reste facilement réalisable
Est ce que Doctrine intègre les tables "virtuelles" ?
Pas naturellement. Ceci doit être réalisable, en "trichant". Ou encore, en lui faisant prendre des vessies pour des lanternes... Ceci peut être un début de solution.
Il se trouve que certaines tables des BD pays sont liées avec les table de la BD centrale
Ceci me fait particulièrement peur. En principe Doctrine devrait pouvoir émuler la liaison, mais au prix d'une perte de performances catastrophiques.
Partager