1

我知道传递闭包概念用于存储树结构数据。这个概念还用于以非常高效和快速的方式检索分层数据,并以最少的复杂查询。

在 SQLite 查询浏览器中,我尝试了以下查询:

CREATE TABLE category (
    id INTEGER NOT NULL PRIMARY KEY,
    name VARCHAR(255),
    parent_id INTEGER,
    FOREIGN KEY (parent_id) REFERENCES category (id)
); 

CREATE VIRTUAL TABLE category_closure USING transitive_closure (
    tablename="category",
    idcolumn="id",
    parentcolumn="parent_id"
);

我可以使用查询号创建表。1 但查询没有。2 不工作。

有人可以提供使用 SQLite 在 Android 中的具体示例吗?

4

1 回答 1

1

如博客文章Querying Tree Structures in SQLite using Python and the Transitive Closure Extension中所示,传递闭包扩展必须手动编译。这在使用默认的 Android 数据库 API 时是不可能的。

您可以使用触发器来维护一个显式的闭包表

于 2015-07-22T07:47:27.733 回答