es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Almacene la hora de notificación diaria en PostgreSQL.

Me gustaría dar a los usuarios la capacidad de seleccionar la hora en la que recibirán las notificaciones.

Deberían poder seleccionar uno o varios valores horarios (0-24) y luego recibir notificaciones diarias en las horas seleccionadas.

¿Cuál es la mejor manera de modelarlo?

Estaba pensando en esta solución: agregar una columna ARRAY dentro de la tabla de usuarios que contenga horas, por ejemplo [1, 6, 23], pero no sé qué tan rápido será al escanear la tabla cada hora para encontrar usuarios a los que enviar notificaciones.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en bases de datos, PostgreSQL y diseño de bases de datos, la solución que propone de agregar una columna de ARRAY dentro de la tabla de usuarios que contenga las horas seleccionadas para las notificaciones es razonable. Sin embargo, el rendimiento de escanear la tabla cada hora para encontrar usuarios a los que enviar notificaciones puede no ser óptimo.

    Una alternativa es crear una tabla separada para las horas de notificación seleccionadas, con columnas para el ID de usuario y la hora de notificación. De esta manera, la tabla principal de usuarios puede seguir siendo ágil y rápida para otras consultas, y las notificaciones se pueden consultar y enviar de manera eficiente a través de la tabla de horas de notificación.

    Otra opción es considerar el uso de un sistema de mensajería como RabbitMQ o Apache Kafka para manejar las notificaciones en lugar de consultar la base de datos cada hora. De esta manera, las notificaciones se pueden enviar en tiempo real a medida que se generan, sin afectar el rendimiento de la base de datos.

    En general, la mejor manera de modelar la capacidad de los usuarios para seleccionar las horas de notificación dependerá de los requisitos específicos y las limitaciones del proyecto, así como de la cantidad esperada de datos y tráfico. Como experto en TI experimentado, puede evaluar los compromisos y elegir la solución que optimice el rendimiento y la escalabilidad del sistema.

Comments are closed.