Mongoose:建议的数据库架构

时间:2011-09-25 13:20:53

标签: node.js mongodb mongoose nosql

好的,所以我来自mySQL背景,现在正尝试使用nodeJS和Mongoose重建网站。我的旧mySQL架构看起来像这样(简化):

users
  user_ID
  user_name
  user_email
  user_password

groups
  group_ID
  group_name
  group_description

groupusers
  groupuser_ID
  group_ID
  user_ID

comments
  comment_ID
  group_ID
  user_ID
  comment_txt

任何人都可以建议重新构建这个旧的mySQL架构以使用Mongoose的最佳方法吗?

1 个答案:

答案 0 :(得分:5)

users
  user_ID
  user_name
  user_email
  user_password
  Groups
     - grupid 1
     - grupid 2
     - grupid 3

groups
  group_ID
  group_name
  group_description
  comments
    1 - 
       user_ID
       comment_txt
    2 -
       user_ID
       comment_txt 

如果您担心评论大小(目前mongodb最大文档大小为16 MB),您可以将其移至其他文档

通过这种方式,您可以通过

找到该组的用户
 db.users.find({Groups:'groupid1'})

用户所属的群组

   db.users.find({id:userid},{Groups:1})

如果您想通过上述查询检索组相关信息,我建议您使用users.groups存储最常访问的组字段,如下所示

users
  user_ID
  user_name
  user_email
  user_password
  Groups
     - { grupid 1,name}
     - {grupid 2,name}
     - {grupid 3,name}