我数据库的一部分包括一个表,该表保存有关块的信息:
CREATE TABLE blocks (
id_block INTEGER NOT NULL,
id_type INTEGER NOT NULL,
id_parent_block INTEGER NOT NULL,
PRIMARY KEY (id_block),
FOREIGN KEY (id_type) REFERENCES block_types (id_block_type),
FOREIGN KEY (id_parent_block) REFERENCES blocks (id_block)
) WITHOUT ROWID;
第一。我不确定 id_parent_block 是外键,因为它是当前表中存在的键。
它应该反映出某种内部块在其中具有块的层次结构。顶部的块的 id_parent_block = -1 。
块中也有单词:
CREATE TABLE words(
id_word INTEGER NOT NULL,
str_word TEXT NOT NULL,
PRIMARY KEY (id_word),
FOREIGN KEY (id_block) REFERENCES blocks (id_block),
) WITHOUT ROWID;
一个块中可能有单词(或没有)和块(或没有)。
第二。如何获得与块层次结构中每个块相关的所有 id_word ,其中最上面的块不一定具有id_parent_block = -1?