Учитывая следующую структуру таблицы:
CREATE TABLE IF NOT EXISTS `roles` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(32) NOT NULL,
`description` varchar(255) NOT NULL,
`parent` int(11) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;
можно было бы запросить его таким образом, чтобы потомки возвращались первыми (снизу вверх).
1, user, Login privileges, granted after account confirmation, 17
2, admin, Administrative user, has access to everything., NULL
15, unverified, Users who have not validated their email address, NULL
16, verified, Users who have validated their email address, NULL
17, guest, A guest role, an anonymous visitor with no account, NULL
18, moderator, Role for doing staff duties, 1
Цель состоит в том, чтобы загрузить их в метод addRole
Zend_Acl, который требует добавления ролей перед добавлением дочернего элемента.
Мой текущий метод является неоптимальным (и, вероятно, неправильным), который требует 2 запросов.Один для получения всех конечных узлов (где родитель имеет значение NULL), а другой для получения узлов с родителями, заказанными родителем (DESC).
Любая помощь всегда ценится.