Foros del Web » Programación para mayores de 30 ;) » Java »

maestro detalles y claves autonumericas

Estas en el tema de maestro detalles y claves autonumericas en el foro de Java en Foros del Web. Hola, les comento que tengo el siguiente problema. Estamos desarrollando una aplicacion en java y necesitamos un formulario maestro detalles, y nos encontramos con el ...
  #1 (permalink)  
Antiguo 24/04/2006, 07:17
Avatar de pyanqn  
Fecha de Ingreso: noviembre-2005
Mensajes: 331
Antigüedad: 18 años, 5 meses
Puntos: 8
Información maestro detalles y claves autonumericas

Hola, les comento que tengo el siguiente problema.

Estamos desarrollando una aplicacion en java y necesitamos un formulario maestro detalles, y nos encontramos con el siguiente inconveniente:

La tabla maestro tiene como clave principal un autonumerico, y la tabla detalle tambien. Ahora, no nos es posible guardar los datos en nuestra base de datos MySQL 5 ya que la tabla detalle no conoce la clave del maestro (una clave foranea). La idea es rescatar el numero que genera la base de datos. PERO como es una aplicacion que funcionara en un entorno en el que multiples usuarios insertaran datos, es muy probable que consultar este valor haciendo SELECT last_inset_id() o algo por el estilo, dos o mas usuarios podrian obtener el mismo número.

La solucion propuesta por nosotros es la siguiente, que nuestra tabla maestro posea como clave primaria un autonumerico, pero como ademas tiene un campo razon_social que tambien es único, tomar este campo para que sea la clave foranea en el detalle

Pero esto ha causado muchas polemicas, pero no se soluciona el problema, por cuestiones de gustos!

Ahora mi pregunta es como profesionales de las ciencias de la computacion, que opinion les merece esta solución, (Aunque ya sabemos que funciona, y no nos quita el sueño) o en todo caso, cual podría ser otra solución a este problemita, usando el autonumerico del mestro como foranea en el detalle


Desde ya muchas gracias...
Los saludo atentamente.
  #2 (permalink)  
Antiguo 24/04/2006, 07:36
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 10 meses
Puntos: 24
El simple uso de autonumericos no es muy bien visto, ya que si en algun momento decides cambiar de motor de BD, y el motor que quieres colocar no trae soporte para ello, entonces debes reprogramar la aplicación.

Al hacer que detalle tenga como llave foranea hacia Maestro la "Razon social", estas violando una de las leyes de normalización (creo que la 5ta o la 6ta).
La llave foranea de detalle debe apuntar a la llave PRIMARIA de la tabla Maestro.

Digo todo esto dsde el punto de vista de la Ing de software.

Saludos
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #3 (permalink)  
Antiguo 24/04/2006, 07:48
Avatar de pyanqn  
Fecha de Ingreso: noviembre-2005
Mensajes: 331
Antigüedad: 18 años, 5 meses
Puntos: 8
Estamos completamente de acuerdo. Pero sigo sin resolver el problema. En todo caso, cual seria tu solución?

Bloquerias la tabla completa maestro para consultar el ultimo id generado? insisto con los autonumericos, porque es una orden que nos viene de arriba.
Y además como te comente es una tabla que será consultada por muchos...

Alguna sugerencia

Muchas gracias.
  #4 (permalink)  
Antiguo 24/04/2006, 09:16
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 10 meses
Puntos: 24
La solucion que propondria yo, seria modificar la tabla Maestro, pero si dices que no se puede, entonces tu solucion es bastante aceptable.

Saludos
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
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 17:50.