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

Dudas con claves foraneas

Estas en el tema de Dudas con claves foraneas en el foro de Mysql en Foros del Web. hola saben estoy haciendo una MER o modelo de BD y tengo la siguiente consulta estoy relacionado unas tablas y sucede que tengo el siguiente ...
  #1 (permalink)  
Antiguo 03/05/2010, 09:18
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago
Mensajes: 212
Antigüedad: 21 años
Puntos: 0
Sonrisa Dudas con claves foraneas

hola saben estoy haciendo una MER o modelo de BD y tengo la siguiente consulta estoy relacionado unas tablas y sucede que tengo el siguiente dilema.

Tengo 4 tablas
servicios veteriandrinarios
tratamiento
cirujia
laborastorio

sucede que tratamiento, cirujia y laboratorio las 3 pertenecen a servicios veterinarios
mi pregunta es a siguiente se puede hacer que un campo de servicios veterianrios este relacionada como clave foranea con las otras 3 tablas???
lo que pasa es que el campo ideSer toma solo el valor de una de las tablas y no de las 3 en otras palabras solo puede ser una de las demas tablas
sino se puede hacer o no se recomienda cual seria la forma correcta de hacerlo

estoy trabajando con mysql

agradesco la informacion de antemano.

Atte.
Goomba
  #2 (permalink)  
Antiguo 03/05/2010, 09:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Dudas con claves foraneas

Cita:
mi pregunta es a siguiente se puede hacer que un campo de servicios veterianrios este relacionada como clave foranea con las otras 3 tablas???
Una FK apunta a una única tabla. No puedes tener una FK definida apuntando a diferentes PK, porque simplemente (y piénsalo) ¿con cuál haría la comprobación de integridad referencial?
No tendría sentido.
Lo que sí puedes hacer es tener en una misma tabla múltiples FK apuntando a diferentes tablas. En ese caso, bien puedes definirlo como DEFAULT NULL, con lo que la dependencia es opcional y no mandatoria.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 03/05/2010, 09:32
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago
Mensajes: 212
Antigüedad: 21 años
Puntos: 0
Respuesta: Dudas con claves foraneas

gracias por la respuesta entonces lo mas correcto seria crear 3 ids en la tabla servicio para referenciar las otra 3 tablas de lab, tratamiento y cirujia y validar que solo una sea ingresada
gracias por la respuesta adjuntare una imagen

ahy esta como lo tengo ahora ahora lo cambiare en la imagen muetra como las 3 tablas se relacionan con sservicio pero emdiante un solo campo ahora tendre 3 campos en la tabla de servicios que identifique la relacion con cada una d elas demas tablas
  #4 (permalink)  
Antiguo 03/05/2010, 09:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Dudas con claves foraneas

Bueno... Estás cerca. Pero la conceptualización de un servicio de atención veterinaria es algo diferente, por lo general.
Esta es una librería de modelos de bases de datos que te puede servir: Database Answers, con su modelo de atención veterinaria: Vets Praticle


Como puedes ver, los tratamientos componen una entidad, pero la cirugía se considera un tratamiento, por lo que no existe como entidad independiente... En este caso, los tratamientos componen un listado iterado que luego se factura, por lo que unmismo registro sólo hace referencia a un tratamiento, como los renglones de una factura. Por eso se puede usar una sola entidad para referirse a todos ellos.
Laboratorio, sí puede y tal vez debería ser una entidad independiente, pero eso se debe analizar.


Es una forma de modelarlo. No hay leyes sobre esto y dependerá del relevamientos del sistema y las reglas de negocio puestas por el cliente.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: claves, foreignkey
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 13:55.