Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/03/2012, 09:35
rgillemus
 
Fecha de Ingreso: febrero-2012
Mensajes: 2
Antigüedad: 12 años, 2 meses
Puntos: 0
Insert en tablas intermedias

Hola a todos.
He credado una base de datos para mi despacho como abogado. Para ese fin hecreado tres tablas (todas funcionan con motor innodb)
La primera tabla, llamada asunto, almacena los casos de que me ocupo y contiene, como más importantes, los siguientes campos:
asunto_id INT, AUTO_INCREMENT
cuantia FLOAT,
materia VARCHAR(200)
PRIMARY KEY asunto_id

La segunda tabla se llama "persona" y allí pretendo almacenar todas las personas con las que me relaciono por razones profesionales y que intervinen o han intervenido en distintos asunto. Esta tabla tiene los siguientes campos:
persona_id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(200),
primer_apellido VARCHAR(200),
segundo_apellido VARCHAR(200)
Las personas guardadas en "persona" pueden haberlo sido porque: o fueran clientes o contrarios o testigos o peritos en un asunto.
Por eso credo una tabla llamada "rol" con los siguientes campos:
rol_id INT AUTO_INCREMENT PRIMARY KEY,
descripcion ENUM('cliente', ''contrario', 'testigo', 'perito')
Como una misma persona, a lo largo del tiempo, aunque no es frecuente, puede desempeñar roles distintos y, a su vez, roles distintos pueden ser desempeñados por varias personas creo una tabla intermedia para solucionar esta relación muchos a muchos que llamo "persona_rol" que tiene como campos:
persona_id PK,
rol_id PK
También creo otra tabla que relaciona personas y sus respectivos roles con un determinado procedimiento. A esta tabla la llamo personas_asunto y contiene los siguientes campos:
asunto_id INT PRIMARY KEY,
persona_id INT PRIMARY KEY,
rol_id INT PRIMARY KEY.
Pues bien, lo que me gustaría saber es: ¿de qué modo puedo automatizar la tarea de insertar datos en las tablas intermedias que no me obligue después de introducir una persona y un nuevo asunto a ir a la tabla rol_persona a especificar el rol_id que le corresponde y luego a persona_asunto a añadir los de persona_id, rol_id y asunto_id.
He intentado hacerlo con TRIGGERS pero el resultado no ha sido satisfactorio quizás por lo poco que los he utilizado hasta ahora.
Si alguien supiera como hacer INSERTS en tablas intermedias ahorrándome todos esos pasos o solucionar el problema con otro diseño de la base le estaría muy agradecido