Je lisais récemment la documentation de symfony2 mongodb et je me sentais un peu confus quant à la façon de l'utiliser.
Mongodb a un mappage de relations odm un-à-un, un-à-plusieurs, plusieurs-à-plusieurs similaire à mysql orm, qui est également plus pratique à utiliser.
Mais si vous utilisez mysql et mongodb en combinaison, pour obtenir les données mongodb de mysql, selon le document officiel de doctrine un-à-un, vous devez associer mysql et mongodb via l'abonné et les événements LifecycleEventArgs.
Il n’existe pas d’exemples détaillés pour un à plusieurs et plusieurs à plusieurs. Plus tard, j'ai découvert que lors de l'utilisation d'un à plusieurs et de plusieurs à plusieurs, une table intermédiaire doit être générée dans MySQL et Mongodb. Grâce à l'événement LifecycleEventArgs, la table intermédiaire devient un pont pour la communication entre MySQL et Mongodb
La maintenance de cette table intermédiaire est donc plus gênante. Par exemple, si vous supprimez des données mongodb, vous devez également mettre à jour la table intermédiaire. De plus, s’il existe de nombreuses tables associées à deux bases de données, n’y aurait-il pas également de nombreuses tables intermédiaires ? ?
Pour smyfony2, combinez MySQL et mongodb. Vaut-il mieux utiliser une seule base de données ? ? ? Si les deux sont utilisés en combinaison, les données stockées ne doivent pas être fortement dépendantes ? ? ? Dans ce cas, est-il fastidieux d'utiliser MySQL et MongoDB sur le site officiel de la doctrine ? ?
Pour être simple et fiable, vous devez absolument regrouper chaque entreprise dans un seul stockage ; Doctrine fournit une interface de fonctionnement orientée objet pour le stockage de type croisé, ce qui ne veut pas dire que cela est recommandé.
Comme ils se trouvent tous dans des stockages différents, il est plus approprié d'utiliser l'API pour fonctionner.