Vamos por partes:
1. Una FOREIGN KEY es una parte del modelo relaciona y se trata de un nivel de restricciones:
Restricción de dominio de campo.
2. Una FK es una clave foránea, ajena o externa. Esto significa que es un campo de una tabla que debe llevar un valor que se corresponda con la PRIMARY KEY de otra tabla, a la que se hace referencia.
3. La sentencia en cuestión lo que hace es establecer una relación en la base de datos entre ambas tablas, indicando al DBMS cuáles campos y cuales tablas están relacionadas, de qué forma y con qué condiciones.
4. Para que se pueda usar una FK, el motor de tablas del DBMS debe ser capaz de interpretar esa relación. En el caso de MySQL, el tipo de tablas MyISAM no soporta relaciones de FK, por lo que la sentencia no causa efectos. Sí son soportadas por el motor InnoDB.
5. Una FK determina, en esencia, que para que un registro pueda ser ingresado en una tabla, el valor del campo designado como FK
debe existir previamente en la tabla referida.
6. El objetivo central de una FK es
mantener la consistencia de datos, que en tu base debe ser mantenida a través de programación, ya que ni siquiera conocías lo que eran las FK...
7. En el caso de tus consultas, no se verían afectadas, aunque sí permitirían mayor seguridad a la hora de obtener datos, ya que tal y como planteaste el modelo, sería factible poner un disco como creado por diferentes autores... lo que se denomina
inconsistencia de datos.
8. Toda tabla que contenga claves de otras tablas (como la de
favoritos, que mencionas), debe tener las definiciones de FK correspondiente, para poder administrar correctamente las inserciones.
¿Se va comprendiendo un poco la idea?
Mi sugerencia es que vuelvas a revisar el tema de
base relacional de datos, ya que si no conocías el tema, pueden también faltarte otros detalles. Sin ofender...