Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Recomendación para hacer un sistema de notificaciones

Estas en el tema de Recomendación para hacer un sistema de notificaciones en el foro de Mysql en Foros del Web. Buenas!, Estoy programando una pequeña red social que tiene comentarios, menciones, likes y colecciones. El asunto es que ahora estoy haciendo el sistema de notificaciones. ...
  #1 (permalink)  
Antiguo 01/02/2017, 12:50
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Recomendación para hacer un sistema de notificaciones

Buenas!,

Estoy programando una pequeña red social que tiene comentarios, menciones, likes y colecciones.

El asunto es que ahora estoy haciendo el sistema de notificaciones. Inicialmente estaba pensando hacerlo con una única consulta a todas las tablas que puedan tener un nuevo comentario, like... que afecte al usuario.

Pero la verdad es que me da un poco de miedo, ya que la consulta es bastante potente, pues consulta unas 6 tablas simultáneamente.

Por ello no sé si hacer una tabla llamada notifications que vaya almacenando todas las notificaciones, es una solución bastante básica.

¿Qué pensáis?
  #2 (permalink)  
Antiguo 01/02/2017, 14:12
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Recomendación para hacer un sistema de notificaciones

y que tiene que sean 6 tablas? si el query esta bien realizado y las relaciones en las tablas tambien no habrian ningun inconveniente en que sean 6 o mas.......
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 01/02/2017, 14:24
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Respuesta: Recomendación para hacer un sistema de notificaciones

Actualmente tengo 1 millón de notificaciones... voy a probar a hacerlo con 6 tablas por que tus consejos siempre son buenos... pero me da miedo, :P... te cuento!
  #4 (permalink)  
Antiguo 01/02/2017, 15:34
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Recomendación para hacer un sistema de notificaciones

Pero no entiendo cual es el problema, el millon de notificaciones los filtras por fecha o muestras todo? cual es el query que estas usando ahorita? cuales son las tablas que propones?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 01/02/2017, 16:17
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Respuesta: Recomendación para hacer un sistema de notificaciones

Buenas Libras,

El query que estoy usando es:

Consulta 5 tablas y luego extraigo la info del usuario que ha clicado en el like o ha comentado. El id_profile_affected es el ID del usuario que solicita las notificaciones.

¿No es muy bruto?

Código MySQL:
Ver original
  1.  
  2. (SELECT title FROM profiles WHERE id=id_profile_creator LIMIT 1) as title,(SELECT code FROM profiles WHERE id=id_profile_creator LIMIT 1) as code ,(SELECT path_avatar FROM profiles WHERE id=id_profile_creator LIMIT 1) as path_avatar
  3.  
  4. SELECT id,id_profile_creator,id_profile_affected FROM contents_comments
  5. SELECT id,id_profile_creator,id_profile_affected FROM contents_likes
  6. SELECT id,id_profile_creator,id_profile_affected FROM contents_mentions
  7. SELECT id,id_profile_creator,id_profile_affected FROM contents_collections
  8. SELECT id,id_profile_creator,id_profile_affected FROM contents_comments_likes ) AS T1
  9.  
  10. WHERE id_profile_affected=79 limit 0, 20
  #6 (permalink)  
Antiguo 01/02/2017, 17:00
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Recomendación para hacer un sistema de notificaciones

todas las tablas con los mismos campos? Yo pense que sacabas informacion diferente de cada tabla, para ese caso seria mejor nada mas tener una tabla con un identificador para que sepas que tipo de comentario es:

id,id_profile_creator,id_profile_affected, id_type

y una tabla de tipos

id_type descripcion
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 01/02/2017, 17:22
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Respuesta: Recomendación para hacer un sistema de notificaciones

Buenas Libras,

Las tablas son diferentes, pero solamente necesito extraer esos campos. Por ejemplo la tabla comments tiene varias columnas diferentes a la tabla likes.

En ese caso mi consulta es correcta?

Gracias por tu ayuda
  #8 (permalink)  
Antiguo 02/02/2017, 07:57
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Recomendación para hacer un sistema de notificaciones

Cita:
Iniciado por salbatore Ver Mensaje
Buenas Libras,

Las tablas son diferentes, pero solamente necesito extraer esos campos. Por ejemplo la tabla comments tiene varias columnas diferentes a la tabla likes.

En ese caso mi consulta es correcta?
De todos modos no porque estas repitiendo informacion en varias tablas, y eso no es valido en una base de datos normalizada
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 02/02/2017, 08:12
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Respuesta: Recomendación para hacer un sistema de notificaciones

Buenas Libras,

Disculpa, he mirado que significa "base de datos normalizada" pero no llego a entender tu razonamiento.

Puedes explicarmelo?

:D
  #10 (permalink)  
Antiguo 02/02/2017, 08:18
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Recomendación para hacer un sistema de notificaciones

Disculpa son id's los que tienes repetidos, lo cual esta bien, ahora que parte no entiendes de una base de datos normalizada?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #11 (permalink)  
Antiguo 02/02/2017, 09:53
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Respuesta: Recomendación para hacer un sistema de notificaciones

Los IDs se repiten por que en algunos casos son diferentes.

Pero la consulta no es pesima verdad?... osea... es que al verla tan sencilla me parece demasiado sencilla.

:D... disculpa tanta ignorancia, pero al hacer consultas grandes siempre me entra la paranoia.
  #12 (permalink)  
Antiguo 02/02/2017, 10:20
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Recomendación para hacer un sistema de notificaciones

La consulta se puede mejorar eso que ni que, pero no te puedo dar una opcion de mejora si no se cuales son los datos ni que es lo que esperas....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #13 (permalink)  
Antiguo 02/02/2017, 14:22
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Respuesta: Recomendación para hacer un sistema de notificaciones

Ok... voy a probar y veré que tal va! :D
  #14 (permalink)  
Antiguo 04/02/2017, 21:27
 
Fecha de Ingreso: junio-2015
Ubicación: São Paulo
Mensajes: 3
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: Recomendación para hacer un sistema de notificaciones

ese tipo de inyecciones haran que la carga sea lenta...estas utilizando algun framework?

Etiquetas: notificaciones, sistema, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:38.