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

Posibles soluciones al uso de Foreing key y triggers

Estas en el tema de Posibles soluciones al uso de Foreing key y triggers en el foro de Mysql en Foros del Web. Tengo varias tablas con la siguiente estructura. categories Código: | id_categorie | total_forums | forums Código: | id_forum | fk_id_categorie | total_themes | themes Código: ...
  #1 (permalink)  
Antiguo 04/05/2013, 15:16
Avatar de asdmaster  
Fecha de Ingreso: marzo-2010
Mensajes: 98
Antigüedad: 14 años, 8 meses
Puntos: 2
Posibles soluciones al uso de Foreing key y triggers

Tengo varias tablas con la siguiente estructura.

categories
Código:
| id_categorie | total_forums |
forums
Código:
| id_forum | fk_id_categorie | total_themes |
themes
Código:
| id_theme | fk_id_forum | total_posts |
posts
Código:
| id_post | fk_id_theme |
users
Código:
| id_user | total_themes | total_posts |
Las tablas están relacionadas mediante llaves foráneas.(ON DELETE CASCADE)
entonces es obvio que si borro una categoría se borran todos los foros de esa categoría , los temas que corresponden al dichos foros, su vez los post, etc.
Hasta aqui todo bien es el comportamiento esperado, mi problema viene al querer actualizar los datos de los campos total_ de la forma mas automatizada posible.
La solución perfecta seria crear triggers para cada tabla que se encargue solo de actualizar los campos total_ pero los triggers no se ejecutan dentro del evento en CASCADA y hacerlo manualmente me exigiría muchas lineas de código aumentando la complejidad y el coste de mantenimiento.

Agradecería que me orientaran sobre las posibles soluciones.

Espero se entienda mi pregunta ?
  #2 (permalink)  
Antiguo 06/05/2013, 06:48
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Posibles soluciones al uso de Foreing key y triggers

Si quieres hacerlo con DB sólo puedes usar triggers or store procedures.
En ambos casos tendrás que programarlos manualmente, dado que sólo tienes un par de tablas no parece ser mucho trabajo.
Si lo haces fuera de la DB cualquier script puede ejecutarse con un cronJob que actualize los datos.
Salu2
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: campo, key, soluciones, 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 13:49.