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

atributos multivaluados

Estas en el tema de atributos multivaluados en el foro de Mysql en Foros del Web. hola foro. . . aunque no lo crean, no he encontrado mucho sobre este topico. El punto es que necesito una base de datos que ...
  #1 (permalink)  
Antiguo 26/10/2010, 17:04
 
Fecha de Ingreso: enero-2010
Mensajes: 53
Antigüedad: 9 años, 7 meses
Puntos: 2
atributos multivaluados

hola foro. . .

aunque no lo crean, no he encontrado mucho sobre este topico. El punto es que necesito una base de datos que registre clientes. Pues bien, cada cliente puede tener varios telefonos y varios correos electronicos. Tambien varias direcciones. . . como hago?

por ahi he leido que no es buena idea trabajar con atributos multivaluados en mysql. Por que seria asi? y en ese caso, cual seria la mejor salida?

gracias!
  #2 (permalink)  
Antiguo 27/10/2010, 02:17
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 11 años, 6 meses
Puntos: 574
Respuesta: atributos multivaluados

La forma correcta es usar tablas referenciadas, me explico

TablaClientes
idCliente clave principal
Nombre
Apellido
... y todos los campos "unicos" del cliente

TablaTelefonosClientes
idTel clave principal
idCliente clave foranea referenciada a TablaClientes
Telefono

TablaEmailsClientes
idEmail clave principal
idCliente clave foranea referenciada a TablaClientes
email

Una tabla para cada campo que necesites, telefonos, emails, direcciones, delegaciones, contactos...

Esto te permite tener una relación 1 a n (es decir un cliente puede tener un numero indefinido de telefonos o emails). Por otro lado la definicion de una clave foranea (FK) te asegura que esten relacionados. Tambien puedes definir ON DELETE CASCADE lo que te asegurará que al borrar un cliente tambien se borren sus registros relacionados en las tablas "auxiliares".

Todo esto trabajando con tablas del motor Innodb.

Parece mas complicado pero no lo es.

Quim

En las tablas auxiliares puede ser una buena idea agregar algun campo que cualifique al telefono o al email, es decir un campo donde puedas marcar que telefono es el principal o del departamento comercial o de facturación... Usando el id de cliente y el cualificador podras obtener siempre el telefono que busques...

Última edición por quimfv; 27/10/2010 a las 02:23
  #3 (permalink)  
Antiguo 27/10/2010, 07:45
 
Fecha de Ingreso: enero-2010
Mensajes: 53
Antigüedad: 9 años, 7 meses
Puntos: 2
Respuesta: atributos multivaluados

mil gracias quimfv, mas claro imposible!

Etiquetas: atributos, multivaluados
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:29.