Hola gracias por sus prontas respuestas,
Queria que me explicaran porque dicen que seran datos redundantes?
pues si nos fijamos solo habrá un usuario por fila y este usuario solo va a querer aprender y enseñar 3 idiomas diferentes.
PD: estoy seguro que nunca vamos a permitir mas de tres idiomas para enseñar y 3 idiomas para aprender.
Lo que pasa es que me parece muy poco eficiente ( aunque hablo desde mi ignorancia ) por ejemplo en el segundo caso si quiero sacar una relacion de que idiomas quiere aprender cada usuario su nombre y su email, tendira que tener una consulta asi:
Código:
select tabla_usuarios.email, tabla_usuarios.nombre, GROUP_CONTACT(tabla_ensena.idioma_ensena) AS ensena, GROUP_CONTACT(tabla_aprende.idioma_aprende) AS aprende from tabla_usuarios INNER JOIN tabla_ensena ON tabla_usuarios.ID_usuario=tabla_ensena.ID_usuario INNER JOIN tabla_aprende ON tabla_usuarios.ID_usuario=tabla_arende.ID_usuario GROUP BY ID_usuario
mientras que si lo tengo de la primera forma la consulta seria:
select * from tabla_usuarios
Me da la impresion que la segunda cunsulta puede ser mas optima y rapida que la primera, ustedes que creen?