2014-09-05 6 views
5

Ho creato una tabella SQLite FTS3 per un'app per Android con diverse colonne. La tabella è popolata dagli input dell'utente. Tuttavia, non tutte le colonne della tabella dovrebbero avere un valore. Esempio: c'è una colonna denominata PLURAL. L'utente invia una parola che è un verbo (non un sostantivo) e quindi la colonna PLURAL non dovrebbe avere un valore.Android SQLite fts3: cosa devo inserire: valori nulli O stringhe vuote?

Cosa devo inserire nella colonna PLURAL, un valore NULL o una stringa vuota ""?

Fatta eccezione per la logica che influenza la risposta, c'è qualche differenza significativa nelle prestazioni del database se utilizzo NULL su valori di stringa vuoti? Ci sono problemi noti (ad esempio, generare eccezioni) se utilizzo valori NULL?

Ho cercato sul Web e ho trovato alcune opinioni su altri DB ma non su SQLite fts3.

Grazie!

risposta

5

Sulla base logica: non si deve inserire una stringa vuota, ma NULL, dal momento che nella parola SQL NULL viene trattato come NO VALUE

Non c'è nessun problema preformance legate alla Emptyness o nulliness di corda. L'unica considerazione può emergere nel caso dell'istruzione SQL inner join. INNER JOIN unisce solo i campi non NULL adatti per unire le condizioni. Esistono speciali istruzioni LEFT/RIGHT JOIN che consentono l'utilizzo dei campi NULL nei join.

1

quello che ho capito dopo aver attraversato più post è che gestisce null come combinazione di comportamento da diversi motori di database.

L'obiettivo è rendere SQLite gestire i valori NULL in un modo conforme agli standard. Ma le descrizioni degli standard SQL su come gestire i NULL sembrano ambigue. Non è chiaro dai documenti standard esattamente come devono essere gestiti i NULL in tutte le circostanze.

riferiscono questo per informazioni dettagliate http://www.sqlite.org/nulls.html