2014-09-05 41 views
5

我已經爲幾個列的Android應用程序創建了一個SQLite FTS3表。該表由用戶輸入填充。然而,並非所有的表格列都應該有一個值。例如:有一個名爲PLURAL的列。用戶提交的是一個動詞(不是名詞),所以PLURAL欄不應該有值。Android SQLite fts3:我應該插入什麼:空值或空字符串?

我應該輸入到PLURAL列,一個NULL值或一個空字符串「」?

除了影響答案的邏輯之外,如果我使用NULL作爲空字符串值,數據庫性能是否存在顯着差異?如果我使用NULL值,是否有任何已知問題(例如拋出異常)?

我在網上搜索過,我發現了其他數據庫的一些意見,但沒有在SQLite fts3上發現。

謝謝!

回答

5

基於邏輯:你不應該插入空字符串,但NULL,因爲在SQL字NULL作爲NO VALUE

有到emptyness或字符串的nulliness不相關的問題性能與處理。 SQL inner join聲明中唯一的考慮可能會出現。 INNER JOIN只加入非NULL適合加入條件的字段。有特殊的LEFT/RIGHT JOIN聲明允許在連接中使用NULL字段。

1

我在閱讀多篇文章後瞭解到,它處理null作爲來自不同數據庫引擎的行爲組合。

目標是讓SQLite以符合標準的方式處理NULL。但是SQL標準中關於如何處理NULL的描述看起來很模糊。從標準文件中不清楚在任何情況下應該如何處理NULL。

參照本作的詳細信息 http://www.sqlite.org/nulls.html

相關問題