Estoy escribiendo una aplicación que se comunica con una API web, que responde con JSON. Actualmente, estoy traduciendo los objetos JSON a objetos Java usando gson (que es impresionante, por cierto).¿Almacenar JSON en un campo sqlite?
Ahora, quiero almacenar algunos de estos objetos en una base de datos SQLite. Sin embargo, tienen muchas propiedades que nunca se usarían en las consultas (es decir, no estaré ORDER
ing, WHERE
ing, ni nada de eso con esas propiedades), por lo que creo que no es necesario crear columnas para todas ellas. Lo que estoy pensando en hacer es:
- sólo tienen columnas para los datos esenciales que se utilizará cuando se consulta la base de datos
TEXT
Que uno oBLOB
columna (que se recomienda?) Que almacena el JSON real, entonces puedo volver a crear mi objeto Java y acceder a todos los datos.
Esto sería tanto hacer la vida más fácil y más eficiente mi código (que no tendría que escribir código muy diferente cuando se trata de datos de la API frente a los datos de la base de datos).
Sin embargo, aunque no veo inconvenientes, se siente un poco sospechoso.
¿Qué tipo de problema crees que me encontraría si utilizo esta técnica?
Sería técnicamente una violación de las reglas de normalización - campos cuyos valores dependen de otros campos, pero las reglas de normalización son sugerencias, no leyes talladas en piedra que DEBE HACER. –
En mi aplicación, almaceno datos JSON en un campo 'TEXT', pero son datos que no ameritan su propia tabla. – javisrk
@Marc Me gusta cómo tradujo "a pescado" en "violación de las reglas de normalización" :) (sí, sé lo que son) – Felix