usar - ¿Cómo modelarías una aplicación de correo electrónico en MongoDB?
que tan seguro es mongodb (1)
Gmail usa el concepto de etiquetas (como etiquetas en stackoverflow). Eso significa que la bandeja de entrada, el correo electrónico, las estrellas, etc, el objeto de correo electrónico normal, acaba de marcar con la etiqueta especificada. Por lo tanto, solo hay Email
y Labels
.
Puedes verlo usando la búsqueda en gmail como label:inbox
o label:Starred
.
Me gustaría sugerir un diseño bastante simple como este:
Email
{
_id
Title,
Body,
Status {read, unread},
Labels { name, type(system, custom) },
Replies {...},
..
}
Labels
{
_id,
name,
settings {
ShowInLabelsList (show, hide, showIfUnread),
ShowInMessageList (show, hide),
..
}
}
Seguro que me he perdido algo, pero creo que está bien comenzar desde el esquema anterior y agregar más funciones en el futuro si es necesario.
Actualizar:
Para la ''Vista de conversación'' supongo que todas las respuestas muestran ir a la colección anidada Replies
(he actualizado mi esquema). Logic está siguiendo:
Una vez que haya recibido un mensaje nuevo, debe verificar si el correo electrónico con el mismo nombre ya existe (para asegurarse de que es necesario eliminar "Re", etc.) también debe verificar al usuario que ha enviado el correo electrónico en la lista de destinatarios. Si las condiciones anteriores son verdaderas, solo agregue un nuevo correo electrónico a la colección anidada de Replies
contrario agregue a la colección de correos electrónicos.
¿Cómo modelarías una aplicación de correo electrónico (como gmail) en MongoDB? ¿Modelarías una Conversation
? Inbox
/ OutBox
? o mail
?
Gracias