Buenas!
Supongo que todo el tema es de una mala comprensión. Bien por nuestra parte, bien por parte del diseño de la base de datos.
A mi entender (que quede bien claro que es lo que a mi me ha dado por entender), no necesitas esa estructura, sino más bien una tabla con los campos que serán reflejados en un formulario.
Cada campo (que tiene varias posibilidades, pongamos: campo "color": Blanco, azul, rojo y verde), entonces le generas en el formulario, en vez de un campo de texto, un cuadro de lista, que tendrá todas las posibilidades del campo en un desplegable.
El siguiente campo, tendrá varias posibilidades en otro desplegable (roto, azulado, verdoso, añil, charramangueiro, bermellón, carmín....). Cada matiz, en este campo estaría sin el nombre del color (sin el Blanco, azul, rojo, etc), es decir, vendría solo con el primer apellido del color (incluso podría haber apellido común para colores diferentes).
Aquí es donde tendría que entrar la técnica del filtrado, de tal manera que si coges el color blanco, en la siguiente solo te coja los matices del blanco (según hayas diseñado tú el filtrado).
La tabla original guardaría en el primer campo el blanco, y en el segundo el matiz.
Puedes alargar esto las veces que quieras, como que fuese una escalera en lo referente al formulario(hay que escoger primero el color, después el matiz, etc, y por este orden), pero en cuanto a la tabla, cada escalón vendría a ser un campo.
De este modo, en una tabla grabas en cada campo lo que has ido escogiendo en los cuadros de lista del formulario.
Ten en cuenta que cuantos más escalones haya mayor va a ser el listado en los cuadros de lista (lo que pasa es que si todo te funciona bien al manejar el formulario solo verás los filtrados).
Fíjate que te comento una sola tabla, que supongo que es la que quieres tener al final.
Las otras tablas (que son las que tienes ahora), vendrían a ser el origen de los datos que saldrían en los cuadros de lista.
Ya contarás.
Un saludo!