Cita:
Iniciado por bandolera Y cómo se hace la búsqueda en este tipo de tabla? Porque si une dos tablas diferentes solo buscará el criterio que nos interesa, o es user o es role, para hallar el otro. Cierto?
Como te dice Libras, eso dependerá del JOIN que realices, y el modo en que lo plantees.
MySQL no trabaja telepáticamente, ningún DBMS tiene consultas automágicas. Solo harán lo que tu digas que haga.
Si consultas por una sola, te devolverá datos por esa sola. Si quieres que devuelva solo los que coinciden en ambas tablas, tendrás que hacer un JOIN que haga eso.
Y si quieres que te devuelva solos los de una que no estén en la otra, o que los devuelva todos aunque no estén en ambas, también se puede. Todo dependerá de lo que TU le indiques al DBMS...
La meta de las FK es mantener la integridad referencial de los datos, y eventualmente hacer mejores optimizaciones en las consultas.