Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/05/2013, 15:16
Avatar de asdmaster
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 ?