在大多数情况下,使用文档数据库比关系型数据库更为实用。关系型数据库需要模式定义,而文档数据库往往是概念上无需模式定义的。对于用户数据库尤其有用,因为您可以随时添加用户信息而无需进行任何迁移。例如,以下内容是完全有效的:
{
id: <your UUID>,
name: "Willy",
email: "willy@won.ca"
},
{
id: <your UUID>,
name: "John",
facebookId: 10029823,
avatarUrl: "http:\\graph.facebook.com\picture\10029823
}
这是完全可能的,而且在我看来是个好主意。就像Remon所说的那样,文档数据库的无模式设计对于灵活性来说是一个好主意。
关于如何建模的问题,我建议(在mongodb中)创建一个名为“users”的文档集合,每个用户都有一个文档。在集合上通过用户名创建唯一索引是个好主意。