2011-09-25 16 views
7

私はmySQLのバックグラウンドから来て、nodeJSとMongooseを使ってサイトを再構築しようとしています。私の古いMySQLのスキーマは(簡体字)、このような何かを見て:Mongoose:推奨データベーススキーマ

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のスキーマを再構築するための最良の方法を提案することはできますか?

答えて

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 

あなたはコメントサイズを心配している場合(現在は最大ドキュメントサイズは16メガバイトであるMongoDBの)、あなたがして、グループのユーザーを見つけることができます。このようにして、他のドキュメント

に移動することができますまた

db.users.find({Groups:'groupid1'}) 

ユーザーが属するグループ

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

にIあなたは上記のクエリでグループrelevent情報を取得したいfを、私はあなたがこの

users 
    user_ID 
    user_name 
    user_email 
    user_password 
    Groups 
    - { grupid 1,name} 
    - {grupid 2,name} 
    - {grupid 3,name} 
のように、users.groupsでも、グループのフィールドにアクセスする最も頻繁に保存することをお勧め