Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/11/2009, 12:38
Avatar de gnzsoloyo
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: Podés darme vuestra opinión sobre este diseño?

Bien. Si esos campos son preferencias de contacto, eso puede resolverse con un campo ENUM que tenga cuatro valores posibles, ya que en definitiva solamente necesitas un dato: QUé medio usar apra el contacto. Ese valor bien puede ser uncódigo numérico en que se asigne:
Cita:
1: Teléfono particular.
2: Telefono profesional.
3: e-Mail particular.
4: e-Mail profesional.
Respecto a los teléfonos, la cosa es parecida:
Código sql:
Ver original
  1. CREATE TABLE contacto_Tel(
  2.   idcontacto  INT NOT NULL,
  3.   telefono VARCHAR(14),
  4.   tipo_tel TINYINT NOT NULL,
  5.   PRIMARY KEY(idcontacto, telefono),
  6.   FOREIGN KEY idcontacto REFERENCES contacto(idcontacto)  
  7.   )
Los e-Mails:
Código sql:
Ver original
  1. CREATE TABLE contacto_eMail(
  2.   idcontacto  INT NOT NULL,
  3.   eMail VARCHAR(100),
  4.   tipo_email TINYINT NOT NULL,
  5.   PRIMARY KEY(idcontacto, eMail),
  6.   FOREIGN KEY idcontacto REFERENCES contacto(idcontacto)  
  7.   );

Esa sería más o menos la idea.
Con dos tablas relacionadas de esa forma, podrías tener uno o muchos teléfonos o e-Mails de la misma persona.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)