我只是在使用修改的预排序树遍历 (MPTT) 构建一个表来存储分层数据——你知道的:每个节点都存储left
和right
ID 以查找其后代。我正在使用 CakePHP 建议的模型,它与标准方式不同parent_id
,每行都包含 。
这是建议的表结构:
CREATE TABLE categories (
id INTEGER(10) UNSIGNED NOT NULL AUTO_INCREMENT,
parent_id INTEGER(10) DEFAULT NULL,
lft INTEGER(10) DEFAULT NULL,
rght INTEGER(10) DEFAULT NULL,
name VARCHAR(255) DEFAULT '',
PRIMARY KEY (id)
);
以前从未使用过这种风格,也不知道它是如何被搜索的,我想知道我应该索引哪些字段?只是主键就足够了,还是我也应该包括lft
在内rght
?