Tengo una tabla con "documentos" (los documentos, zip, doc, xls, etc se guardan en el sistema de archivos y su referencia en la tabla). Esta tabla tiene un campo "keywords" donde están las palabras clave (o temas) de cada documento separadas por comas (ej: "Ingeniería financiera, Infraestructura, Financiamiento, Fideicomiso").
Me piden que liste en un <select multiple> la totalidad de keywords de la tabla pero cada uno de los elementos de "éste array separado por comas" de manera individual.
Para ello, se me ocurrió hacer lo siguiente:
1- Borro el contenido de una tabla temporal (la primera vez no estará vacía, pero las siguientes tendrá contenido. llamémosla "tbl_keywords_TMP")
2- Recorro la lista de palabras claves de todos los registros de la tabla de documentos y los concateno en una variable separándolos por comas. Luego le hago un split por la coma y genero un array de keywords.
3- Inserto cada elemento del array en la tabla temporal que borré en el paso 1 (tbl_keywords_TMP)
4- Le hago un drop a la tabla que almacena definitivamente los keywords (llamémosla "tbl_keywords")
5- Una vez borrada ésta tabla, hago un SELECT INTO tbl_keywords form tbl_keywords_TMP group by campo_Keywords
El "group by" sería necesario porque pueden existir keywords duplicados (que los hay, a patadas)
Luego, cuando necesite consultar los keywords lo hago sobre la tabla "tbl_keywords"
Les parece correcto el palnteo o se les ocurre soluciones que requieran menos passos?
Gracias
PD: El proceso se hará manualmente cuando el "operador" lo considere oportuno o se acuerde de hacerlo :p