我正在思考一个用于处理消息应用程序的良好文档结构。
我基本上需要三种(或四种)类型的对象:
- 用户(用户名、电子邮件、密码等)
- 联系人列表(包含不同的联系人或联系人组)
- 对话(对话是一些人之间的信息集合)
- 消息(包含消息正文、一些时间戳和创建者。)
我的想法是将联系人嵌入到用户文档中,并将消息嵌入到对话文档中:
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' }
]
}
你觉得这个架构怎么样?
我认为将它们分开会更好(因此每个文档都是自己的),因为每个文档都有不同的更新频率。但我真的没有任何经验,所以听到一些建议会很好:)
问候