1

私は現在、ユーザー間のWebサイトにインスタントメッセージング機能を実装するnodejsとmongodbプロジェクトに取り組んでいます。助けが必要なのは、mongodb データベースに格納されるオブジェクト構造です。

要件は次のとおりです。

  • ウェブサイトのすべてのユーザーは、別のユーザーにメッセージを送信できる必要があります
  • メッセージは、ユーザーがプレゼンテーション ページを介して別のユーザーにメッセージを送信すると、各スレッドが作成されるフォーラムと同様のスレッドにグループ化する必要があります。
  • 送信者および/または受信者はスレッドに返信できる必要があります
  • 受信者/送信者がスレッド全体 (またはそのスレッド内の特定のメッセージのみ) を削除しても、他のユーザーはすべてのメッセージを表示する必要があります (削除しない場合)。
  • 各ユーザーには、一般的なメール ボックスのように、受信トレイ、送信済み、ゴミ箱があります。

これは私がこれまでに持っているものです

messages:[{
    '_id'   : '502c21e3833ea71307001d56',
    'from'  :  {
                    '_id': '503fdbfa294f6db74de649ea',
                    'name': 'Kumar'
    },
    'to'    : {
            '_id'   : '5061e2a61ac427f716000378',
            'name'  : 'Elan'
    },
    'subject'   : 'sit amet consectetur',
    'message'   : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',
    'sent'      : '2012-09-26T18:04:26.656Z',
    'last_reply': '2012-09-26T18:04:26.656Z',
    'reply'     : [
                {
                    'content': 'dolor sit amet consectetur adipiscing elit.',
                    'to': {
                        '_id': '503fdbfa294f6db74de649ea',
                        'name': 'Kumar'
                    },
                    'from'  :  {
                        '_id': '5061e2a61ac427f716000378',
                        'name': 'Elan'
                    },
                    'date': '2012-09-26T18:04:26.656Z'
                },
                {
                    'content': 'consectetur adipiscing elit. ',
                    'to': {
                        '_id': '5061e2a61ac427f716000378',
                        'name': 'Elan'
                    },
                    'from'  :  {
                        '_id': '503fdbfa294f6db74de649ea',
                        'name': 'Kumar'
                    },
                    'date': '2012-09-26T18:04:26.656Z'
                }
            ]

}]

メッセージ_ユーザー_マッピング

 messages_user_mapping : [{
        '_id'   : '502c21e3833ea71307001222',
        'msg_id' : '502c21e3833ea71307001d56',
        'user' : {
                '_id': '503fdbfa294f6db74de649ea',
                'name': 'Kumar'
            },
        'sent' : '1',
        'inbox': '0',
        'trash': '0',
        'soft_delete':{
            'msg_id' : '502c21e3833ea71307001d56',
            'from'  : 'inbox'
        }
    },
    {
        '_id'   : '502c21e3833ea71307001222',
        'msg_id' : '502c21e3833ea71307001d56',
        'user' : {
                '_id': '5061e2a61ac427f716000378',
                'name': 'Elan'
            },
        'sent' : '0',
        'inbox': '1',
        'trash': '0',
        'soft_delete':{
            'msg_id' : '',
            'from'  : ''
        }
    }
    ]

より良いスキーマ構造を探しています。

4

0 に答える 0