最佳实践db树排序

时间:2014-02-27 15:59:30

标签: php mysql

我有这样的表:

CREATE TABLE `tree` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `parent_id` int(11) DEFAULT NULL,
  `version` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `title` varchar(255) NOT NULL,
  `sort` int(11) NOT NULL,
  `rating` double NOT NULL DEFAULT '0',
  `global_sort` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `IDX_22359CF6727ACA70` (`parent_id`),
  CONSTRAINT `FK_22359CF6727ACA70` FOREIGN KEY (`parent_id`) REFERENCES `tree` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

在每个级别的项目可以按以下方式排序:版本,排序或评级。

我需要以正确的顺序返回所有项目。

至于现在,我为每个级别使用php递归&更新有关级别排序的字段global_sort。

任何更好的想法?

EDIT1

并作为变体:如果正确的顺序必须只在一个级别内(不用担心全局)?

EDIT2 我的意思是像这样闷闷不乐 http://joxi.ru/WmYPUxjKTJAfVs5nCE4

当某些项目必须按评级问题和某些评级desc

进行排序时

0 个答案:

没有答案