メッセージ アプリを処理するための適切なドキュメント構造について考えています。
基本的に、次の 3 種類 (または 4 種類) のオブジェクトが必要です。
- ユーザー (ユーザー名、電子メール、パスワードなど)
- 連絡先リスト (さまざまな連絡先または連絡先グループを含む)
- The conversation (会話とは、何人かの人々の間のメッセージの集まりです)
- メッセージ (メッセージ本文、タイムスタンプ、および作成者が含まれます。)
私のアイデアは、連絡先をユーザー ドキュメントに埋め込み、メッセージを会話ドキュメントに埋め込むことでした。
1. ユーザー
{
username: 'dev.puS',
usernameCanonical: 'dev.pus', // used for unique constraints
email: 'developement.pus@gmail.com,
emailCanonical: 'developement.pus@gmail.com,
salt: 'some hash',
password: 'hash with salt',
logs: { last_login: 12.06.2008, last_password_reset: 04.03.2007 },
state: { online: true, available: false },
contacts: [ user_id1, user_id2, user_id3 ]
}
2.会話
{
members: [ user_id1, user_id2 ],
messages: [
{ author: user_2, body: 'Hi what's up' },
{ author: user_1, body: 'Nothing out here :(' },
{ author: user_2, body: 'Whanna ask some question on stackoverflow' },
{ author: user_1, body: 'Okay, lets go' }
]
}
このスキーマについてどう思いますか?
ドキュメントごとに更新頻度が異なるため、それらを別々に保持する方がよいと思います(したがって、各ドキュメントは独自のものになります)。しかし、私は実際にそれについての経験がないので、アドバイスを聞くのは良いことです:)
よろしく