Problema con claves

05/12/2008 - 16:29 por mooonk | Informe spam
Hola,os comento un problema que tengo y que no se como solucionar

Tengo una tabla , pongamos tabla1 , con un campo numerico que es
clave

Tabla1 -> ID

Tengo otra tabla , pongamos tabla2 , que tiene dos campos numericos
que son clave ID1 , ID 2 y hacen referencia cada uno a un registro de
tabla1 , digamos que definen una relacion entre dos registros de tabla
1



Tabla 1 Tabla2
1 registro1 ID1 ->1, ID2 ->2
2 registro2
3 registro3

Mi problema viene a la hora de que si creo una relacion desde ID1 de
tabla2 a ID de tabla1 y otra desde ID2 de tabla2 a ID de tabla1,

No puedo configurar las relaciones para que si yo borro el registro 1
en tabla 1 me borre automaticamente el registro de tabla2 , puedo
hacerlo con una de las relaciones ,pero no con las dos.Evidentemente
necesito que ese registro de tabla 2 se borre en el momento que se
borre cualquiera de sus dos ids de la tabla principal

No veo como hacerlo , os agradeceria alguna sugerencia..

Saludos

Preguntas similare

Leer las respuestas

#36 Jose TH
09/12/2008 - 13:04 | Informe spam
Aquí con los nulos obviamente hay un problema (como siempre con
los nulos) y a mi se me presenta el siguiente dilema:
empleados(empleado_id,...,numero_celular_1, numero_celular_2,
numero_celular_3)
Normalizemos:
empleados(empleado_id, ...)
emp_no_cel1(empleado_id, numero_celular_1)
emp_no_cel2(empleado_id, numero_celular_2)
emp_no_cel3(empleado_id, numero_celular_3)
Acabo con cuatro tablas con las que por medio de joins podría
reconstruir la tabla original.




4 tablas !!!!!???????????? Eso es normalización???? cual forma normal
???? la -1 ??? A menos que estés haciendo un chiste o siendo irónico como
es tu costumbre. O a menos que quieras confundir a la gente como ya todos
se están dando cuenta.

Desde la PRIMERA FORMA NORMAL (obviando claro las "business rules"
particulares que puedan sugerir otra cosa) ahí sólo salen DOS TABLAS:

empleados(empleado_id,...)
y
telefonos(empleado_id,numero_celular)

Después te molestas cuando te contradicen. Pero si es que no te fijas lo
que escribes!!!


Obviamente este no es el resutado que queremos. El resultado que
queremos sabemos todos bien cual es. Pero ese no lo conseguimos
normalizando.



Ah no? y cómo lo conseguimos? por la ley de la relatividad quizás? :)

Que quede claro, que he normalizado con el fin de deshacerme de
los nulos. Digo esto para contrastar con el problema de que no
se pueden tener mas de tres teléfomos. Eso sería rediseño que
no tiene nada que ver con normalización.



Pero esto es increíble. La PRIMERA FORMA NORMAL te elimina automáticamente
la necesidad de los nulos desde el principio en los numeros de celular.
Simplemente no metes el registro a la tabla teléfonos y punto!
Ya veo de donde viene tu obsesión por las vistas, es que te encantan los
joins seguramente para pensar en 4 tablas :))

Ahora, que alguien me corrija,



Yo no quería hacerlo pero no me dejas opción.

pero mi conclusión es que, aparte de
toda la controversia que pueda existir sobre la definición de 1NF,



Controversia mal entendida por muchos.

el problema no es de normalización, sino de rediseño con sentido
común (si... de ese que no está formalizado)




mmmmmmm. ya me estoy preocupando.
Respuesta Responder a este mensaje
#37 Jose TH
09/12/2008 - 13:08 | Informe spam

Por esta vez Jose TH nos ha proporcionado un enlace a buena informacion
:-)




Por fin un ápice de humildad en uno de ustedes! No lo puedo creer! :)

Por cierto esa información es viejísima y no ha cambiado en décadas.
Revisen los libros viejos.



No hace falta complicarse tanto la vida. Creas un tipo de datos para
numeros de celular que permita dejar el numero en blanco y listo.
O simplemente usas un varchar y utilizas la cadena de longitud 0 para


indicar que esa información falta.




Vaya, han dejado la ortodoxia a un lado. Sigo sorprendido. Ya están
hasta admitiendo los null's y cadenas vacías! veo que vamos progresando.
:) Les felicito realmente.


Saludos
Respuesta Responder a este mensaje
#38 Carlos M. Calvelo
09/12/2008 - 13:09 | Informe spam
Hola Alfredo,

On 9 dec, 12:01, Alfredo Novoa wrote:

Yo creo
que "normalizar" es mejor usarlo solo para lo relacionado con las
dependencias funcionales.




Exactamente eso es lo que se me vino a la cabeza y me he dado cuenta
de la tontería que estaba haciendo/diciendo.
:-)

Yo mismo digo que la tabla está normalizada porque no hay
dependencias y mas tarde me pongo a "normalizarla", confundiendolo
con el problema de los nulos.

Y es que soy un gran artista! El que no vea eso... está ciego. :-)

Saludos,
Carlos
Respuesta Responder a este mensaje
#39 Jose TH
09/12/2008 - 13:13 | Informe spam

Pues no creo que haya sido su intención que tu fueras
a seguir los enlaces abajo. :-)




Pues sí la tenía... prejuiciado... aunque también tenía la intención de la
"venganza" porque siempre son ustedes los que quieren burlarse del
desconocimiento de los otros en determinados temas. Ahora les ha tocado a
ustedes.

Pues sí! Claro que no hace falta complicarse la vida.
Como tampoco hace falta hacer eso que haces tu. Se monta el diseño
que todos sabemos que es mejor (con una tabla para los teléfonos)
y ya está :-)




Ah!!!! pues entonces de donde sacaste esas 4 tablas? era ironía entonces o
solo buscabas confundir a los que no llegaron hasta este mensaje? La
verdad que aun de tanto leerles sigo sin entenderles.

Pero que no se diga que ese nuevo diseño es resultado de
normalización.



... seguro...claro que si... como no?
Respuesta Responder a este mensaje
#40 Jose TH
09/12/2008 - 13:14 | Informe spam
Pero que no se diga que ese nuevo diseño es resultado de
normalización. Que a su vez es lo que nos llevo a lo de la
primera forma normal.


Que por cierto, ahora que lo pienso, creo que lo que he hecho
yo ni normalización es. Simplemente he partido la tabla por lo
de los nulos.




Ves lo que te digo, si dices desde un principio que estabas jugando con la
inteligencia de los que te leen, tal vez te habríamos entendido...

La terapia!:)
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida