Pregunta Android SQLite fts3: ¿Qué debo insertar: valores nulos O cadenas vacías?


He creado una tabla SQLite FTS3 para una aplicación de Android con varias columnas. La tabla se llena con las entradas del usuario. Sin embargo, no todas las columnas de la tabla deberían tener un valor. Ejemplo: Hay una columna llamada PLURAL. El usuario envía una palabra que es un verbo (no un sustantivo) y, por lo tanto, la columna PLURAL no debería tener un valor.

¿Qué debo ingresar en la columna PLURAL, un valor NULO o una cadena vacía ""?

Excepto por la lógica que afecta la respuesta, ¿hay alguna diferencia significativa en el rendimiento de la base de datos si uso NULL sobre valores de cadena vacíos? ¿Hay algún problema conocido (p. Ej., Lanzar excepciones) si uso valores NULL?

He buscado en la web y he encontrado algunas opiniones sobre otros DB pero no sobre SQLite fts3.

¡Gracias!


5
2017-09-05 12:43


origen


Respuestas:


Basado en la lógica: no debes insertar una cadena vacía sino NULL, ya que en palabra SQL NULL es tratado como SIN VALOR

No hay problemas de rendimiento relacionados con el vacío o la nulidad de la cadena. La única consideración que puede surgir en caso de SQL inner join declaración. INNER JOIN sólo se une a no NULL Campos que se ajustan a condiciones de unión. Hay especial LEFT/RIGHT JOIN declaraciones que permiten el uso de NULL campos en uniones.


5
2017-09-05 12:51



Lo que entendí después de revisar varias publicaciones es que maneja nulo como una combinación de comportamiento de diferentes motores de base de datos.

El objetivo es hacer que SQLite maneje los NULL de una manera compatible con los estándares. Pero las descripciones en los estándares SQL sobre cómo manejar NULL parecen ambiguas. De los documentos de normas no queda claro exactamente cómo deben manejarse los NULL en todas las circunstancias.

refiera esto para información detallada http://www.sqlite.org/nulls.html


1
2017-09-05 12:57