【问题标题】:foreigns key in android fts4 tablesandroid fts4表中的外键
【发布时间】:2016-05-10 15:21:49
【问题描述】:

我有以下 sql 表

父母(_id,姓名) Kid(_id,name,parent_id)//其中parent_id为外键 Toy(_id,name,…,kid_id)//其中kid_id是外键

现在我有查询可以获取给定父母的所有孩子以及给定孩子的所有玩具。

在应用程序中包含搜索功能的新需求。为此,我需要更改为 FTS4 表。如何定义 fts4 表以免丢失外键查找功能?我在英尺方面没有任何经验。但是我已经阅读了有关 docid 与 rowid 的信息。我可以将 docid 用于外键值吗?有人请提供一个例子,例如

CREATE TABLE Kid 使用 fts4(rowid, name, docid); //其中docid实际上是parent_id

【问题讨论】:

    标签: android sqlite android-contentprovider android-search fts3


    【解决方案1】:

    FTS 表并不像真正的表。将它们视为索引。

    FTS 表应仅包含文本列;将parent_id 存储在 FTS 表中没有意义。此外,docidrowid 相同,应与“真实”表的主键相同。

    所以表格应该是这样的:

    CREATE TABLE Kid (
        _id INTEGER PRIMARY KEY,
        name TEXT,
        parent_id INTEGER REFERENCES Parent(_id)
    );
    CREATE VIRTUAL TABLE Kid_FTS USING FTS4 (name);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-14
      • 2017-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-10
      相关资源
      最近更新 更多