Android SQLite fts3:我应该插入什么:空值或空字符串?

时间:2014-09-05 12:43:56

标签: android sqlite null string fts3

我为具有多个列的Android应用创建了一个SQLite FTS3表。该表由用户的输入填充。但是,并非所有表列都应具有值。示例:有一个名为PLURAL的列。用户提交一个动词(不是名词),因此PLURAL列不应该有值。

我应该在PLURAL列中输入什么,NULL值或空字符串“”?

除了影响答案的逻辑外,如果我对空字符串值使用NULL,那么数据库性能是否有任何显着差异?如果我使用NULL值,是否存在任何已知问题(例如抛出异常)?

我在网上搜索过,我在其他数据库上找到了一些意见,但没有在SQLite fts3上找到。

谢谢!

2 个答案:

答案 0 :(得分:5)

基于逻辑:您不应该插入空字符串而是NULL,因为在SQL字NULL中被视为NO VALUE

没有与字符串的空白或无效相关的性能问题。在SQL inner join语句的情况下,唯一的考虑因素可能出现。 INNER JOIN仅加入适合加入条件的非NULL字段。有一些特殊的LEFT/RIGHT JOIN语句允许在连接中使用NULL个字段。

答案 1 :(得分:1)

我在浏览多篇文章后理解的是,它将处理null作为来自不同数据库引擎的行为组合。

目标是让SQLite以符合标准的方式处理NULL。但SQL标准中关于如何处理NULL的描述似乎含糊不清。从标准文档中不清楚在所有情况下应该如何处理NULL。

请参阅此以获取详细信息 http://www.sqlite.org/nulls.html