Ver Mensaje Individual
  #8 (permalink)  
Antiguo 23/11/2012, 09:25
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: 17 años
Puntos: 2658
Respuesta: Tabla eventos que se relaciona con otras tablas

Cita:
puede que una academia organice un evento pero sea en otro lugar
En ese caso el evento debería, por definición del modelo E-R contar con una relación opcional que registro la localización del evento.
Como esta relación es opcional, esto se puede resolver agregando un flag que indique que el lugar es o no el sitio de la academia, y es FALSE, que busque en otra tabla la dirección del evento.
Como te dije, un diseño detallado puede requerir relaciones que a simple vista no son perceptibles.
Lo que tienes que tener claro es que ningún cambio o detalle puede quedar fuera de un modelado de E-R. Donde fuerces el pardigma, empezarás a tener serios dolores de cabeza.
Cita:
¿Entonces para hacer una consulta del tipo "Muestra todos los eventos para la academia con id=36" tengo que unir 3 tablas? porque con la de academias y la de eventos no tengo forma de saberlo.
Exacto.
Ese es el precio de un modelado optimizado. Y si tres tablas tablas te parecen mucho, te advierto que he visto consultas que cruzan 16 tablas sólo en el FROM, sin contar con las que se ponen en subconsultas del WHERE, o validaciones de funciones almacenadas.
La ventaja es que todas esas cosas hacen que las consultas se aceleren gracias a los recursos de los DBMS que resuelven los planes de consulta para estos detalles.
Cita:
puedo crear academias, puedo crear locales, puedo crear tiendas y también puedo crear eventos asociados a alguna de las empresas que he dado de alta yo ante
Cuando te topas con casos como ese, conviene que analices cuidadosamente los atributos de cada entidad, para ver si se los puede englobar en una sola categorizada, o bien se requiere crear un árbol de herencias y relacionar los eventos a una tabla padre.
Todo dependerá de aquellos atributos que sean esenciales.
Si la diferencia entre cada uno de esos elementos es sólo de uno o más datos, que no sean obligatorios o trascendentes, se pueden agregar tablas de "observaciones" o cosas así, donde se los relacione con esa entidad y luego se obtengan encadenados. Como las tablas de Tags.
__________________
¿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; 23/11/2012 a las 09:33