Mongoose: предлагаемая схема базы данных - PullRequest
7 голосов
/ 25 сентября 2011

Хорошо, так что я пришел из истории 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 голосов
/ 26 сентября 2011
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 МБ), вы можете переместить его в другой документ

Таким образом, вы можете найти пользователей группы с помощью

 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}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...