我应该使用文档导向型数据库作为用户数据库吗?

3
我正在制作一个博客网站,用户可以拥有多个博客。我决定使用基于文档的存储来存储博客条目(可以选择MongoDBCouchDB)。
然而,我需要管理我的用户 - 主要是为了身份验证。这是否可以在文档导向的数据库中完成?我该如何设置?将所有用户列在一个文档中似乎不是一个好主意。或者,我应该回退到关系型数据库(最可能是MySQL)吗?
2个回答

3

在大多数情况下,使用文档数据库比关系型数据库更为实用。关系型数据库需要模式定义,而文档数据库往往是概念上无需模式定义的。对于用户数据库尤其有用,因为您可以随时添加用户信息而无需进行任何迁移。例如,以下内容是完全有效的:

{
    id: <your UUID>,
    name: "Willy",
    email: "willy@won.ca"
},

{
    id: <your UUID>,
    name: "John",
    facebookId: 10029823,
    avatarUrl: "http:\\graph.facebook.com\picture\10029823
}

换句话说,它提供了相当大的灵活性。我想不到任何重要的缺点。
就CouchDB和MongoDB而言,选择取决于个人偏好。CouchDB社区和支持有所下降,而MongoDB的持续增长。个人而言,我更喜欢MongoDB,但可以肯定的是,CouchDB的API和整体设计略为清晰。
祝你好运。

0

这是完全可能的,而且在我看来是个好主意。就像Remon所说的那样,文档数据库的无模式设计对于灵活性来说是一个好主意。

关于如何建模的问题,我建议(在mongodb中)创建一个名为“users”的文档集合,每个用户都有一个文档。在集合上通过用户名创建唯一索引是个好主意。


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