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

Identificador unico de tabla

Estas en el tema de Identificador unico de tabla en el foro de Oracle en Foros del Web. Salud@s, Mi problema es el siguiente, en la actualidad estoy realizando un proyecto para la implantación de un ERP en un distribuidor de componentes electrónicos, ...
  #1 (permalink)  
Antiguo 15/11/2006, 15:11
 
Fecha de Ingreso: noviembre-2006
Mensajes: 1
Antigüedad: 18 años
Puntos: 0
Identificador unico de tabla

Salud@s,
Mi problema es el siguiente, en la actualidad estoy realizando un proyecto para la implantación de un ERP en un distribuidor de componentes electrónicos, el caso es que yo me he incorporado cuando el diseño de bb.dd. ya estaba hecho. El caso es que todas las tablas dependen de dos (código y empresa), ambos varchar2, campos que funcionan como índices que se propagan por absolutamente todas las tablas del modelo de datos.
El problema es que es una aplicación multi-empresa, luego la empresa y el código han de ir siempre unidos. Cuando hablo de este código me refiero a un código que hay que mantener por que se trata de un traspaso de una aplicación realizada en Pick y de cuyo código dependen los usuarios por que ya están acostumbrados a ellos. La idea sería utilizar uno interno, que sea único y que identifique éste a la tabla en sus relaciones
Mi cuestión es la siguiente:
¿No sería mejor utilizar una única clave autogenerada, que funcione como índice interno y evitar así tener que utilzar dos claves por cada tabla con la consecuente complejidad de las sentencias que se generen desde la aplicación?
Por favor, ayudenme con enlaces e ideas para poder demostrar esta teoría a los responsables de mi empresa, que no están acostumbrados a trabajar con bb.dd. relacionales.
  #2 (permalink)  
Antiguo 16/11/2006, 12:23
 
Fecha de Ingreso: marzo-2003
Ubicación: Ciudad Habana, Cuba
Mensajes: 57
Antigüedad: 21 años, 8 meses
Puntos: 0
Dentro de la teoria de BD existe un concepto el cual utilizo mucho que se llama llave Subrogada el cual es muy util para esto que me estas diciendo.

DEsde el punto de vista de Teoria de BD la normalizacion de las tablas deberia ser con estos dos campos como llaves, lo que pasa es que a la hora de programar se torna un poco complejo trabajar con dos campos en vez de uno, por eso es que utilizo el concepto de llave Subrogada.

Como funciona: Funciona como comodin de las llaves, es decir en tu tabla sigues manteniendo los dos campos codigo y empresa pero no como PK (Primary key) sino como atributos normales, lo que estos forman parte de una AK (Alternate key... Esto te garantiza que sigan siendo unique index), a la tabla entonces, le agregas un atributo autogenerado que sea la PK y de esta forma ese atributo te garantizará identificar univocamente a la pareja de código + empresa. Eso no entorpecerá para nada que las personas no dominen el codigo pues las búsquedas solucionarán el problema, lo que valora donde no poner la pareja de atributos y donde si por problemas de optimización pues en ocasiones es mucho mejor denormalizar que hacer el JOIN.

Saludos
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 00:08.