在应用程序中使用数据库/数据源的组合

时间:2012-08-14 03:02:14

标签: xml database web-applications nosql

构建一个使用两种不同的方法在应用程序中存储数据的应用程序是否有意义?用一个例子澄清我得到的东西可能是最容易的:

假设我正在运营一个在线书店,需要跟踪书籍,客户,订单等。我的天性本能就是使用关系数据库来保存这类信息。现在,让我们说当我的客户有我的帐户时,他们可以通过各种方式配置他们的主页。例如,假设有一个时钟小部件,它可以有不同的类型(模拟/数字),颜色,并且可以放置在页面上的任何位置(或根本不显示)。我们希望存储此信息,以便客户登录窗口小部件时的类型,颜色和位置正确。也许客户可能会或可能不会使用多个小部件,每个小部件都有自己的属性。换句话说,客户特定的属性需要灵活。我对这种事情的直觉是将这些信息以另一种格式存储,比如XML,尽管到目前为止我还不需要在任何项目中使用XML。在我看来,像MongoDB这样的东西对于持有这种类型的信息可能是有意义的,但我真的不知道它做出明智的判断。

分离出这类信息是否有意义,或者是否应该抽象关系数据库来保存这类信息?我相信这里没有正确答案,但您的见解将会受到赞赏。

1 个答案:

答案 0 :(得分:1)

最明确的是,我开发了一个Ruby on Rails社交应用程序,它将Couchbase(NoSQL文档数据库)和Neo4J(NoSQL图形数据库)结合在一起,使用强大的组合Couchbase for大量数据,包括实时聊天和评论(twitter like stream)和Neo4J都有一些重复数据,但主要用于通过社交网络(图表)进行内容发现。

在性能,一致性和可扩展性方面,Couchbase是领导者,并且拥有许多依赖于它的高容量和可扩展应用程序的示例。 Couchbase和MongoDB将数据存储为JSON,但您也可以存储序列化的对象。如果您使用的是XML,那么转换为JSON并返回就很容易了。