Pues creo que te falta sólo una tabla, la de
empresassubsectores
id_emprsubsector, id_subsector, id_empresa
Los campos id_subsector e id_empresa, que serán numéricos INT(11) deberán ser indexados.
Las vinculaciones de empresas a subsectores se almacenarán en esa tabla. En la tabla empresas no deberá haber ningún campo id_subsector.
Piensa que a los sectores llegarás desde los subsectores.
Creo que esta respuesta tuya delata que no has entendido bien mi pregunta:
Cita: Un mismo subsector puede pertenecer a varios sectores?
no puede perteneces, aun que coincidan muy pocos en nombre, tiene un id unico
Lo que pregunto es si el subsector 'aceite de oliva' podría relacionarse con los sectores alimentación y agricultura, por ponerte un ejemplo, o cada subsector sólo puede relacionarse con un sector.
Si un subsector sólo puede tener un sector de referencia, podrías tener un campo en la tabla subsectores, como ocurre ahora; pero si no es así, tendrías que tener una tabla
subsectoressectores
id_subsectoressectores, id_subsector, id_sector
Pero si cada subsector sólo lo es de un sector, lo que tienes está bien.