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

Problemas de Diseño de BD

Estas en el tema de Problemas de Diseño de BD en el foro de Bases de Datos General en Foros del Web. Hola amigos estoy haciendo una BD tengo cierta informacion como la de miembros donde guardo la infor personal (nombre, appelidos, sexo) y una de contactos ...
  #1 (permalink)  
Antiguo 28/01/2014, 11:04
 
Fecha de Ingreso: noviembre-2013
Mensajes: 83
Antigüedad: 10 años, 5 meses
Puntos: 0
Información Problemas de Diseño de BD

Hola amigos estoy haciendo una BD tengo cierta informacion como la de miembros donde guardo la infor personal (nombre, appelidos, sexo) y una de contactos donde hace referencia a la tabla miembros, pero causa repeticion de datos y quiero evitar eso, me explico con el siguiente diagrama o esquema

1- Miembros (id,nombre, apellido ) 2- Contactos (idmiembro, idcontacto, idrelacion)
3- Relacion (id, nombre)

Ya con datos
Miembros
ID NOMBRE APELLIDO
1 Juan Perez
2 Estela Rivera

Relacion
ID Nombre
1 Esposo

Contacto
IDmiembro IDcontacto IDrelacion
1 2 1
2 1 1

Es la misma informacion solo que al reves, eso quiero evitar, no hayo una solucion a ese problema de diseño
  #2 (permalink)  
Antiguo 28/01/2014, 11:29
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problemas de Diseño de BD

en donde esta la repeticion de datos???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 29/01/2014, 07:53
 
Fecha de Ingreso: enero-2014
Mensajes: 100
Antigüedad: 10 años, 3 meses
Puntos: 0
Pregunta Respuesta: Problemas de Diseño de BD

Compañero pmeninsaxmus16, ¿podrias compartirnos que es lo que quieres hacer con esta base de datos? es decir, la idea ya que no logro entender del todo tus tablas, a como lo entendi las relaciones:

"un miembro tiene uno o varios contactor"
"un contacto tiene un y solo un miembro"

"una relacion tiene uno o varios contactos"
"un contacto tiene una y solo una relacion"

asi lo entendi yo pero, si pudieras ser mas especifico sobre lo que estas diseñando en la base de datos te lo agradecere, para que pueda tratar de ayudarte mas.
__________________
"Benditos sean todos los libros, pues cuando abres uno, te sumerges en un mundo nuevo y completamente diferente"
  #4 (permalink)  
Antiguo 29/01/2014, 08:57
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: Problemas de Diseño de BD

En ese tipo de esquemas las reflexibilidades de relaciones deben especificarse, por lo que esa "duplicidad" es necesaria.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 29/01/2014, 09:06
 
Fecha de Ingreso: noviembre-2013
Mensajes: 83
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Problemas de Diseño de BD

En la tabla contacto agrego el id del miembro y el id del contacto (que es un miembro tambien), osea que si yo meto como miembro a Juan Perez ok, eso esta correcto, y luego meto a su contacto Lucia Perez, a lucia la guardo en Miembros, pero para establecer la relacion ingreso los datos en Contacto
Desde el punto de vista de Juan Perez, Lucia es su contacto, correcto, pero desde el punto de vista de Lucia, Juan Perez es su contacto correcto
Ahora si lo vemos a nivel de base de datos es la misma informacion solo que en campos diferentes
Juan Perez----Contacto Lucia Perez
IDMiembro Juan Perez (Id 14)
IDContacto Lucia Perez (Id 65)
IDRelacion Conyugue (Id 3)

Lucia Perez-------Contacto Juan Perez
IDMiembro Lucia Perez (Id 65)
IDContacto Juan Perez (Id 14)
IDRelacion Conyugue (Id 3)

Como vemos es la misma informacion solo que en orden diferente, eso es lo que quiero evitar, ya que tengo 1500 registros y si sigo esa logica duplicaria la informacion solo que en orden inverso
  #6 (permalink)  
Antiguo 29/01/2014, 09:33
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problemas de Diseño de BD

para ese tipo de diseños duplicarias la informacion pero solo los id's como tienes, si duplicaras por ejemplo el concepto entonces si tendrias un problema aqui no le veo mucho problema que tengas una tabla con los ids de ese tipo, ahora si tu preocupacion es el performance entonces indexas tus tablas y listo, 1500 registros es muy poco para un manejador de base de datos :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 29/01/2014, 19:35
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: Problemas de Diseño de BD

Como te dicen, solo se insertan los id, no los nombres ni los detalles.
Por otro lado, esa forma de manejar ese esquema, por raro que parezca, es la forma general usada en toda red social.
Hay muchos considrandos de por que se hace así son muchos, pero uno de ellos es que la declaracion de un contacto es algo que solo debe hacer el interesado, y por consecuencia solo puedes aceptar una de las registradores, pero no la reflexiva. Esa es dominio del segundo user.
¿Has visto cómo Facebook pide confirmar un contacto antes de registraron?
Bueno, es para eso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 29/01/2014 a las 19:54

Etiquetas: bd, diseño, siguiente, tabla
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 07:58.