Suponed que tenemos consultas sql
SELECT Nombre FROM Usuarios WHERE...
SELECT Nombre, Puerta, Piso FROM Casas, Usuario WHERE....
Y nos interesa analizar dichas SQL, es decir, yo voy a tener un listado de tablas que me interesa saber cuando se consultan, y de esas tablas, tambien puedo tener de alguna las columnas que me interesan.
Digamos que si una consulta es a una tabla que me interesa, tengo que devolver true, y si esa tabla tiene definidas columnas que me interesan, solo devolveré true si la consulta accede a alguna de las columnas que he indicado para esa tabla.
De una consulta SQL, ya dispongo de programas que me devuelven que tablas y que columnas se acceden (el SELECT, y el FROM).
Pero, ¿que estructura de datos puedo definir para las tablas y columnas que tengo yo, para que la comprobación de si las tablas y las columnas de la sql coincide con alguna de las que tengo yo se muy rapida?
Es decir;
Yo quiero devolver true si se accede a la tabla Usuarios, y a la tabla Casa a su columna Piso.
Tengo que la sql tiene en el FROM Usuarios, Casa y en el SELECT Piso, Nombre, y Puerta.
Había pensado en definir un Map de Map's.
El key del primer Map seria el nombre de la tabla, y el objeto otro Map con las columnas teniendo como key el nombre de la columna.