Yii同时使用MongoDB和MySQL

5
我正在构建一个处理本地语言、标签和相关数据的Yii框架系统。我选择MongoDB来存储数据,认为它很适合并且使用成本更低(数据库将有大量数据),但我对用户认证、支付等敏感信息和数据关系区域存在疑问。
问题如下: 1. 您会使用两个不同的数据库系统吗?我需要这样做吗?还是我在复杂化这个过程? 2. 如果您推荐使用两个数据库,那么我应该如何在Yii中实现?
谢谢您的时间!
注:我不打算让这个问题成为关于关系型与非关系型人员之间无休止争论的又一个话题。尽管如此,我认为我的数据适用于Mongo,但如果您对此有任何意见,请直接提出。
2个回答

9
你可能会对OpenSky基础设施的这个演示感兴趣,其中MongoDB与MySQL并用。Mongo主要用于CMS类型的数据,灵活的模式非常有用,而他们依靠MySQL来进行交易(例如客户订单和付款)。如果您最终使用Doctrine库,您会发现ORM(针对SQL数据库)和MongoDB ODM共享相似的API,这应该使试验过程更容易。
我不会避免使用MongoDB存储用户数据,因为这通常是可以从嵌入式文档存储中受益的记录(例如,在单个用户文档中存储多个帐单/送货地址)。如果有什么问题,Mongo应该足够灵活,可以让您开发应用程序而不必担心由于不断发展的产品需求而导致的模式更改。随着这些要求变得更加清晰,您将能够根据应用程序的性能需求和您最终需要的数据库查询类型做出决策。

0

如果你真的需要,使用多个数据库没有什么坏处,许多大型网站都在使用多个数据库,所以去吧,开始你的项目吧。


混合使用NoSQL和关系型数据库通常不是一个好主意,除非确实有必要。你通常会全力使用NoSQL或者不用。在我们公司,我们有一个大型网站,我们使用MySQL来存储数据,但是我们使用MongoDB GridFS来存储文件。只是为了存储文件而已,因为MongoDB GridFs非常适合这个任务。 - Flukey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接