Android SQLite fts3:我应该插入null值还是空字符串?

5
我已经为一个Android应用程序创建了一个带有多个列的SQLite FTS3表格。该表格由用户输入数据填充。但不是所有的表格列都应该有一个值。例如:存在一个名为PLURAL的列。用户提交的单词是一个动词(而不是名词),因此PLURAL列不应该有值。
那么我应该在PLURAL列中输入什么,NULL值还是空字符串 ""?
除了影响答案的逻辑之外,在数据库性能方面使用NULL和空字符串值是否有任何显著差异? 如果使用NULL值,是否存在任何已知问题(例如抛出异常)?
我已经在网络上搜索过,并找到了其他数据库的一些观点,但没有关于SQLite fts3的观点。
谢谢!
2个回答

5

根据逻辑:在SQL中,应该插入NULL而不是空字符串,因为NULL被视为无值

空字符串或NULL对性能没有影响。唯一需要考虑的情况是在SQL inner join语句中。 INNER JOIN只连接符合连接条件的非NULL字段。有特殊的LEFT/RIGHT JOIN语句允许在连接中使用NULL字段。


1
我理解从多篇文章中得知,SQLite将null视为来自不同数据库引擎行为的组合。
目标是使SQLite以符合标准的方式处理NULL。但SQL标准中有关如何处理NULL的描述似乎存在歧义。从标准文档中无法清楚地了解在所有情况下应如何处理NULL。
详细信息请参见http://www.sqlite.org/nulls.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接