Estás creando la base de datos usando tablas MyISAM. Las tablas MyISAM no tienen restricciones de FOREIGN KEY, por lo tanto no pueden controlar por sí mismas la integridad referencial (lo que tu estás llamando "enlazar").
Con ese motor de tablas debes manejarlo por tí, controlando la integridad de datos en la aplicación. No hay otra con las MyISAM.
Si quieres tener integridad referencial administrada por el DBMS, debes usar tablas InnoDB.
Cita: ¿la tabla productos debe enlazarse a subcategorias y categorias o solamente se puede enlazar a subcategorias?
- Si no hay productos que no pertenezcan a una subcategoría, entonces sólo debe haber una relación entre el producto y la subcategoría.
- Si hay productos que no pertenezcan a una subcategoría, entonces necesitarás o una FK qu epueda ser NULL o bien tendrás que manejar las tablas de otra forma.
- Si un producto puede estar en más de una subcategoría, necesitas una tabla para relacionarlas.