Este es un caso ejemplo para que mas o menos entiendan el problema
-tengo clientes
-cada cliente puede ser de una provincia y una ciudad
Y yo quiero relacionar las ciudades con las provincias para que
no puedan ingresar una ciudad que no es de una provincia
Entonces plantee la situacion de dos maneras:
(primera)-----------------------------------------------
==tabla clientes==
dni - pk
apynom
idprovincia - fk
idciudad - fk
==tabla provincias==
id - pk
provincia
==tabla ciudades==
id - pk
ciudades
==ubicacion==
idciudad - pk
idpais - pk
(segunda)-----------------------------------------------
==tabla clientes==
dni - pk
apynom
idubicacion - fk <-------------------------------
==tabla provincias==
id - pk
provincia
==tabla ciudades==
id - pk
ciudades
==ubicacion==
idciudad - pk
idpais - pk
id
-----------------------------------------------------
Yo no se si es valido que coloque el "id" en la tabla ubicacion,
y q utilice ese "id" en la tabla clientes.
Porque si es de la primera manera estaria repitiendo demasiadas
veces los dos campos, y si es como la segunda se repetirian varias
veces solo un campo.
Para mi la primera es la que deberia ser segun otros diseños que vi,
pero por ahi la segunda tambien es valida.
================================================== =================
Un caso similar se presenta en el diseño para la base de datos de
un sistema que estoy desarrollando.
Donde un registro de entrada puede tener varias entradas y tipos:
(primera)---------------------------------------
==registroentrada==
fecha - pk
nrolegajo - pk
hsextras
==horasdeentrada==
fecha - fk - pk
nrolegajo - fk - pk
idtipodeentrada - pk
hora
==tiposdeentradas==
id
tipodeentrada
(segunda)----------------------------------------
==registroentrada==
id
fecha - pk
nrolegajo - pk
hsextras
==horasdeentrada==
idregistroentrada - fk <-------------------
idtipodeentrada - pk
hora
==tiposdeentradas==
id
tipodeentrada
-------------------------------------------------
aca tambien puedo poner un "id" para no tener que
escribir dos campos en la otra tabla