Mongoose:建议的数据库模式设计

7

好的,我来自于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个回答

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}

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