| ||||
Respuesta: Array en MySQL En principio, no existen los array en MySQL, por lo que no hay un tipo de dato útil realmente. Por otro lado, un json es un dato desnormalizado, que usualmente contiene datos de diferentes dominios, e incluso multivaluados, lo que contradice los fundamentos de las bases de datos relacionales, y es inservible para las consultas. No puedes hacer consultas en SQL sobre datos contenidos en un json almacenado en un campo de una tabla. ¿Esto te queda claro? Dicho esto, si quiere almacenar un json en un campo, te conviene usar VARCHAR, menos que la longitud del texto supere los 65.000 caracteres, donde deberás hacerlo en un TEXT.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: Array en MySQL Cita: Gracias! Explicación muy completa
Iniciado por gnzsoloyo En principio, no existen los array en MySQL, por lo que no hay un tipo de dato útil realmente. Por otro lado, un json es un dato desnormalizado, que usualmente contiene datos de diferentes dominios, e incluso multivaluados, lo que contradice los fundamentos de las bases de datos relacionales, y es inservible para las consultas. No puedes hacer consultas en SQL sobre datos contenidos en un json almacenado en un campo de una tabla. ¿Esto te queda claro? Dicho esto, si quiere almacenar un json en un campo, te conviene usar VARCHAR, menos que la longitud del texto supere los 65.000 caracteres, donde deberás hacerlo en un TEXT. Los datos que almaceno en los arrays digamos que son datos "secundarios" que me ayudan en la creacion de estructuras en la web. Me parecía una burrada crear una tabla insertando cada valor en un registro porque tendría que hacer constantemente muchas consultas repetitivas y pensaba que asi podría "reducir el trafico". ¿Sigue siendo una burrada lo que quiero hacer? Por ejemplo, uso esos arrays para replicar una estructura de una pagina html y "crearla en otra pagina de manera idéntica", es decir guardo valores como el numero de divs, de inputs, de select, etc para poder crear una pagina igual a otra a través de la base de datos. En cuanto a json, ¿crees que podria guardar el array desde php directamente en mysql? Habría alguna manera más correcta (dentro de lo que cabe) de hacerlo? En cuanto a VARCHAR, ¿qué longitud debería indicar? Saludos y gracias!! |
| ||||
Respuesta: Array en MySQL Array en bases de datos?? A ver una pregunta, cual es la definicion de un Array? que no es un conjunto de datos ordenados o desordenados? y una tabla en una base de datos que es?? si te fijas bien las tablas son arrays, y eso de reducir el trafico de que tamaño seria tu array???
__________________ What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me |
| ||||
Respuesta: Array en MySQL Para evitar confusiones, en BBDD se suele hablar de "array" en cuanto a tipos de dato de colecciones, entre los que puedes encontrar algunos como tipo TABLE, ROW, VARRAY, RECORD, etc., en diferentes DBMS. Pero en MySQL no existen tales tipos de dato, y de alli que se diga que "no existen los array". Cita: Depnderá de cuán grande sea el tamaño máximo que tenga ese json que quieres guardar. Por eso te dije que el limite serían cerca de 65.000 caracteres. Si es mayor, deberás usar TEXT, o tipos superiores.En cuanto a VARCHAR, ¿qué longitud debería indicar? Yo no te puedo decir cuál es la longitud que te conviene, porque no conozco ni tu sistema, ni he visto jamás los json que genera, por lo que no puedo hacer una estimación. Eso lo tendrás que evaluar TU. Cita: Nada de lo que describes requiere exactamente "consultas repetitivas", ni necesariamente estructuras complejas de inserciones.Los datos que almaceno en los arrays digamos que son datos "secundarios" que me ayudan en la creacion de estructuras en la web. Me parecía una burrada crear una tabla insertando cada valor en un registro porque tendría que hacer constantemente muchas consultas repetitivas y pensaba que asi podría "reducir el trafico". ¿Sigue siendo una burrada lo que quiero hacer? Por ejemplo, uso esos arrays para replicar una estructura de una pagina html y "crearla en otra pagina de manera idéntica", es decir guardo valores como el numero de divs, de inputs, de select, etc para poder crear una pagina igual a otra a través de la base de datos. Tampoco entiendo por qué quieres almacenar las estructuras que componen una web en tablas de BBDD, pero eso es tu decisión. En todo caso habría que analizar cómo sería la base necesaria para administrar lo que dices, pero me suena a una base taxonómica. Algo emparentado con lo que hace Wordpress.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) Última edición por gnzsoloyo; 27/04/2015 a las 10:06 |
| ||||
Respuesta: Array en MySQL Cita: Entendido, gracias!!
Iniciado por gnzsoloyo Para evitar confusiones, en BBDD se suele hablar de "array" en cuanto a tipos de dato de colecciones, entre los que puedes encontrar algunos como tipo TABLE, ROW, VARRAY, RECORD, etc., en diferentes DBMS. Pero en MySQL no existen tales tipos de dato, y de alli que se diga que "no existen los array". Depnderá de cuán grande sea el tamaño máximo que tenga ese json que quieres guardar. Por eso te dije que el limite serían cerca de 65.000 caracteres. Si es mayor, deberás usar TEXT, o tipos superiores. Yo no te puedo decir cuál es la longitud que te conviene, porque no conozco ni tu sistema, ni he visto jamás los json que genera, por lo que no puedo hacer una estimación. Eso lo tendrás que evaluar TU. Cita: Ya lo tengo todo funcionando!!
Iniciado por gnzsoloyo Nada de lo que describes requiere exactamente "consultas repetitivas", ni necesariamente estructuras complejas de inserciones. Tampoco enti endo por qué quieres almacenar las estructuras que componen una web en tablas de BBDD, pero eso es tu decisión. En todo caso habría que analizar cómo sería la base necesaria para administrar lo que dices, pero me suena a una base taxonómica. Algo emparentado con lo que hace Wordpress. De todas formas sigo vuestro consejo, estoy replanteando la bbdd para introducir los datos por separado y no en conjunto dentro de arrays. |
Etiquetas: |