Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/03/2015, 14:36
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Dudas al relacionar tablas

Hola gerniracing:

En el modelo de BD's, no hay una "mejor" forma de hacer las cosas... sino formas que más se adecuan a lo que necesitas...

Si necesitas tener el "control" independiente de las relaciones que hay entre cada par de tablas (es decir, entre Comunidades - Campeonatos, Campeonatos-Eventos y Comunidades-Eventos) entonces si es necesario hacer una tabla para cada una de las relaciones.

Si no necesitas controlar la relación entre pares y te interesa sólo controlar la relación entre las tres tablas, entonces lo "recomendable" es que tengas tus tres tablas catálogos (Comunidades, Campeonatos, Eventos) y una tabla de relaciones que contenga los id's de cada una de estas tablas...

Código MySQL:
Ver original
  1. mysql> SELECT * FROM comunidades;
  2. +--------------+-------------+
  3. | id_comunidad | descripcion |
  4. +--------------+-------------+
  5. |            1 | Comunidad 1 |
  6. |            2 | Comunidad 2 |
  7. +--------------+-------------+
  8. 2 rows in set (0.00 sec)
  9.  
  10. mysql> SELECT * FROM campeonatos;
  11. +----------------+--------------+
  12. | id_campeonatos | descripcion  |
  13. +----------------+--------------+
  14. |              1 | Campeonato 1 |
  15. |              2 | Campeonato 2 |
  16. +----------------+--------------+
  17. 2 rows in set (0.00 sec)
  18.  
  19. mysql> SELECT * FROM eventos;
  20. +------------+-------------+
  21. | id_eventos | descripcion |
  22. +------------+-------------+
  23. |          1 | Evento 1    |
  24. |          2 | Evento 2    |
  25. +------------+-------------+
  26. 2 rows in set (0.00 sec)
  27.  
  28. mysql> SELECT * FROM relacion;
  29. +--------------+----------------+-----------+
  30. | id_comunidad | id_campeonato | id_evento |
  31. +--------------+----------------+-----------+
  32. |            1 |             1 |         1 |
  33. |            1 |             2 |         1 |
  34. |            2 |             3 |         1 |
  35. +--------------+----------------+-----------+
  36. 3 rows in set (0.00 sec)

De esta manera podrás relacionar tus tres tablas. insisto, todo depende de lo que necesitas "controlar" o almacenar...

Saludos
Leo.