Проблема целостности базы данных при сортировке страниц - PullRequest
0 голосов
/ 20 апреля 2011

Я почти закончил сборку своих cms с помощью перетаскивания страниц и редактирования иерархии.

Вот моя таблица страниц в моей базе данных.

CREATE TABLE `pages` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `metatitle` varchar(255) DEFAULT NULL,
 `metadesc` text,
 `metakw` varchar(255) DEFAULT NULL,
 `create_time` datetime DEFAULT NULL,
 `update_time` datetime DEFAULT NULL,
 `name` varchar(255) DEFAULT NULL,
 `url` varchar(255) DEFAULT NULL,
 `parent` int(11) DEFAULT NULL,
 `active` tinyint(1) DEFAULT NULL,
 `sort` int(11) DEFAULT NULL,
 `nofollow` tinyint(1) DEFAULT NULL,
 `deletable` tinyint(1) DEFAULT NULL,
 `navshow` tinyint(1) DEFAULT NULL,
 `type` enum('basic','dynamic','virtual') DEFAULT NULL COMMENT 'basic: only contains basic content\ndynamic: contains both dynamic and basic content\nvirtual: redirects to another page',
 `virtual_redirect` int(11) DEFAULT NULL,
 `route` varchar(255) DEFAULT NULL,
 `dynamic_desc` varchar(255) DEFAULT NULL,
 `content1` blob,
 `content2` blob,
 PRIMARY KEY (`id`),
 UNIQUE KEY `url_UNIQUE` (`url`),
 UNIQUE KEY `name_UNIQUE` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=latin1

Как вы можете видеть из родительскогополе, я использую модель списка смежности для создания иерархии моей страницы.

Скажем, у меня была эта структура страницы ...

|-Page 1
| |-Page 3
| |-Page 2
| |-Page 4
| |-Page 5
|-Page 6

Если я переместил страницу 3 на уровень структурыбудет выглядеть так ...

|-Page 1
| |-Page 2
| |-Page 4
| |-Page 5
|-Page 3
|-Page 6

Вот моя проблема.

В приведенном выше примере используется довольно значительное количество запросов (для такого небольшого дерева).Мне нужно изменить номера сортировки на страницах 2-6 ​​и родителя страницы 3. Это 7 запросов.

Что я испытываю, так это то, что операция перемещения выдает разные результаты каждый раз, когда я ее использую.то есть: иногда это работает отлично, в других случаях номера сортировки не обновляются должным образом.

Как будто база данных сводит на нет некоторые запросы, и довольно скоро целостность базы данных разрушена.

Я не уверен, что это потому, что слишком много запросов или какой-то другой фактор.Но мне очень трудно диагностировать.

Есть идеи, в чем может быть проблема?

Приветствия, Том

1 Ответ

0 голосов
/ 20 апреля 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...