entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Sistema de notificaciones

Estoy realizando un sistema de notificaciones, actualmente necesito enviar una notificación a los usuarios que siguen al usuario que a hecho una publicacion. Esta es mi base de datos...

id      
id_user_notif               
ubicar          
id_ubicacion            
contenedor          
id_contenedor           
revisado

Supongamos que un usuario tiene un millon de seguidores, me pregunto si al momento de hacer una publicacion debera crear un millon de notificaciones para cada usuario que lo sigue o si existe una manera mas elaborada de hacer un sistema de notificación

1 Respuesta

2votos

Leonardo-Tadei Puntos227320

Hola @jorge98,

asumiendo que el "revisado" de tu tabla sea una marca para indicar que el usuario leyó la notificación, entonces sí te hace falta un registro por cada notificación enviada.

Podría reducirse el almacenamiento almacenando la notificación en sí por un lado y la notificación por otro, pero tendrías el mismo millón de notificaciones de manera más eficiente.

Llegados a este punto, la conclusión sería que para un sistema tan grande (si 1 usuario puede tener 1 millón de segidores, salvo que todos sigan solo a uno, debería esperarse que en total haya varios millones de usuarior) una base de datos relacional no es la mejor elección, sino que habría que pensar en otro tipo de almacenamiento distribuido, como MongoDB, CouchDB, Casandra o alguna otra NoSQL.

Una RDBMS actual y potente como PostgreSQL se maneja bien con tablas de algunos millones de registros (si están bien diseñadas), pero un sistema tan intensivo de usuarios y notificaciones la sobrepasaría en el corto plazo.

Saludos cordiales!

PD: la estructura de la tabla que ponés "huele raro"... pareciera que hay campos que describen campos para hacer querys, y eso sería un error de diseño del almacenamiento.

1voto

jorge98 comentado

Muchas gracias por tu respuesta!! y La verdad si hay campos que describen campos, por ejemplo ubicar especifica desde donde se esta mandando la notificación, si desde un comentario o desde un post publicado etc. Para luego poder crear condiciones al momento de mostrar los datos! si eso fuese un error de almacenamiento... alguna idea para realizar lo requerido??

1voto

Leonardo-Tadei comentado

Hola @jorge98,

cuando hay campos que describen campos, el almacenamiento está mal normalizado seguro...

Para poder darte una idea que no sea abstracta, tendría que conocer los qué estructura tienen los comentarios, post y usuarios y en base a eso poder plantear las tablas.

Como esto es una cuestión fuera del tema de esta pregunta, por favor abrí una pregunta nueva sobre temas de normalización de bases de datos, así quedan las preguntas y respuestas mejor organizadas.

Saludos cordiales!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta