symfony2 mongodb的使用

最近在看symfony2 mongodb文档,感觉在使用上有些疑惑。

mongodb有类似于mysql orm的odm one-to-one、one-to-many、many-to-many的关系映射,使用起来也比较方便。

但是如果结合使用mysql和mongodb,从mysql取出mongodb的数据,按照doctrine one-to-one官方文档需要通过订阅器,LifecycleEventArgs事件将mysql和mongodb关联。
而one-to-many、many-to-many就没有详细例子了。后来发现,使用one-to-many、many-to-many的时候需要在mysql和mongodb中产生一张中间表,在通过LifecycleEventArgs事件,使中间表成为mysql和mongodb通信的桥梁

那么对于这张中间表的维护,操作起来比较麻烦,比如删除mongodb的数据,那么也必须更新中间表。另外如果两个数据库关联的表很多,那中间表岂不也很多??

对于smyfony2将MySQL和mongodb组合使用。建议单一使用一种数据库为好???如果将两者组合使用,存放的数据必须依赖性不强???既然那样那么doctrine官网组合使用mysql和mongodb感觉是不是有些累赘??

阅读 4.9k
1 个回答

要简单可靠肯定是应该将各业务分别放到单一的存储里;Doctrine提供了跨类型存储的面对对象操作界面,并不是说推荐这么做。

既然都已经在不同的存储里了,用API来操作是比较合适的。

$user->getComments();
// VS
$comments = $commentManager->getCommentsForUser($user);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进