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

seleccionar columna en mysql

Hola, tengo una tabla en mi db que tiene una tabla secciones la cual tiene dos trigger ambos trigger se ejecutan cuando se inserta un nuevo valor:

  1. inserta una columna en la tabla estadisticas_seccion con el nombre new.nombre_seccion
  2. crea una tabla llamada news_+new.nombre_seccion en la cual se tiene que crear dos trigger para esta nueva tabla:
    1. aumentar_publicacion este trigger afecta la tabla estadisticas_seccion donde tiene que aumentarme en 1(hacer incremento) la columna que sea igual al nombre se seccion nueva donde la fecha de la nueva notica insertada en news_+new.nombre_seccion sea igual a la fecha ya existente en la tabla estadisticas_seccion
      Mi problema radica en como hacer este ultimo trigger, pues no encuentro la forma de que me update la tabla estadisticas_seccion ya que no encuentro como hacerle la referencia a la celda a modificar.
      Saludos D

carlossevi comentado Jun 25, 2014

Lamento no contestar a tu pregunta, pero creo que tiene que haber una forma más fácil de estructurar los datos de tu aplicación cumpliendo reglas de normalización que no te complique tanto la vida. Bajo mi punto de vista no es normal que una insercción tenga un desencadenador tan complejo, que a la postre puede traerte problemas de rendimiento.

Leonardo-Tadei comentado Jun 25, 2014

Tal y como dice Carlos, tenés seguro las tablas mal normalizadas: ningún modelo relacional correctamente relacionado requiere crear nuevas tablas como parte de su funcionamiento normal!

Por otra parte, los triggers tienen ciertos escenarios de uso en los que vale la pena usarlos, pero una aplicación no debería tener más de 4 o 5 triggers como máximo, porque al no ser el código debugueable, con más triggers llega un momento en que ya no se sabe qué es lo que hacen los datos...

En resumen, normalizá bien, y estos problemas desaparecen.

dairon comentado Jun 25, 2014

Hola, yo se lo que es un modelo relacional y siempre lo he hecho al modo tradicional, pero necesito mucha velocidad, necesito que me entiendan, el hosting de mi servidor de db me tiene solamente 5 conexiones recurrentes de usuario, por lo que tengo que hacer que el servidor trabaje mas que las peticiones del usuario que ve la web y que las conexiones para sacar las noticias sean lo más rapidas posibles. por eso estoy haciendo la db de una forma relativa si se puede llamar asi, en vez de relacional aunque tambien tiene relaciones es algo extraño pero lo entiendo.

carlossevi comentado Jun 25, 2014

Si tu problema es que tu hosting no puede soportar la carga de trabajo de la base de datos hay una solución mucho mejor que la de volver del revés la aplicación: caché. Hay muchas cosas que cachear y de forma diferente. Desde los resultados de las consultas recurrentes hasta la generación completa de la página convirtiendo tu página dinámica en una estática autogenerada a los efectos de la carga del servidor.

Para mi sigue siendo muy difícil imaginar un escenario en el que el modelo que planteas tenga un mejor rendimiento que uno relacional bien diseñado.

Leonardo-Tadei comentado Jun 25, 2014

Entonces estás errando el enfoque, Dairon: los RDBMS vienen optimizados asumiendo que el almacenamiento ES relacional y está al menos en 3ra Forma Normal extendida (la de Boyd-Codd).

Todo almacenamiento que viole la FN3, será siempre más lento, ineficiente y hará mal uso de la caché del RDBMS.

PD: no estoy seguro de a qué re referís con "mi servidor de db me tiene solamente 5 conexiones recurrentes"... estás haciendo conexiones persistente a la DB? Eso es una locura en un entorno web!

dairon comentado Jun 25, 2014

mano mira te voy a poner un print_screen de mi pc para que veas el error que me da cuando intento conectarme normalmente por el navicat enter image description here

carlossevi comentado Jun 26, 2014

O bien estás dejando conexiones abiertas sin cerrar tal y como comenta @Leonardo-Tadei o tienes muchas visitas concurrentes. Las soluciones son bien distintas así que intenta averiguar el motivo y seguimos hablando.

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

¿Conoces alguien que puede responder?
¡Comparte esta pregunta!


Otras Preguntas y Respuestas


Actividad Reciente

...

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

Conecta