Aquí hay una pregunta difícil de normalización/SQL/Diseño de bases de datos que nos ha estado confundiendo. Espero poder decirlo correctamente.¿Cuál es la mejor manera de diseñar este problema particular de base de datos/SQL?
Tiene un conjunto de actividades. Son cosas que deben hacerse, una lista glorificada TODO. Cualquier actividad dada se puede asignar a un empleado.
Cada actividad también tiene una entidad para la cual se realizará la actividad. Esas actividades son un Contacto (persona) o un Cliente (empresa). Cada actividad tendrá un Contacto o un Cliente para quien se realizará la actividad. Por ejemplo, la actividad podría ser "Enviar una tarjeta de agradecimiento a Spacely Sprockets (un cliente)" o "Enviar literatura de marketing a Tony Almeida (un contacto)".
De esa estructura, entonces necesitamos ser capaces de consulta para encontrar todas las actividades de un determinado empleado tiene que hacer, a enumerarlos en una única relación que sería algo como esto en ella forma más simple:
-----------------------------------------------------
| Activity | Description | Recipient of Activity |
-----------------------------------------------------
La idea aquí es evitar tener dos columnas para Contacto y Cliente con una de ellas nula.
Espero haberlo descrito correctamente, ya que esto no es tan obvio como podría parecer a primera vista.
Entonces la pregunta es: ¿Cuál es el diseño "correcto" para la base de datos y cómo lo consultaría para obtener la información solicitada?
Parece haber cierta confusión acerca de los clientes y contactos. ¿Son tablas separadas? ¿Hay alguna relación entre clientes y contactos? ¿Son tablas existentes con las que necesita trabajar o tablas nuevas o refaccionables? – ulty4life
Sí, los clientes y contactos son entidades separadas. Quizás no deberían serlo, pero lo son. ;-) –