【问题标题】:Android SQLite fts3: What should I insert: null values OR empty strings?Android SQLite fts3:我应该插入什么:空值或空字符串?
【发布时间】:2014-09-05 12:43:55
【问题描述】:

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

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

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

我在网上搜索了一些关于其他数据库的意见,但在 SQLite fts3 上没有。

谢谢!

【问题讨论】:

    标签: android sqlite null string fts3


    【解决方案1】:

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

    不存在与字符串为空或无效相关的性能问题。唯一的考虑可能出现在 SQL inner join 语句的情况下。 INNER JOIN 只连接非 NULL 适合连接条件的字段。有特殊的 LEFT/RIGHT JOIN 语句允许在连接中使用 NULL 字段。

    【讨论】:

      【解决方案2】:

      阅读多篇文章后我了解到,它将 null 处理为来自不同数据库引擎的行为的组合。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 2021-08-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多