1
PHP / перемещение записей вверх-вниз mySQL, php
« : 20 Апреля 2007, 10:31:47 »
Есть таблица MySQL со структурой:
CREATE TABLE `prices` (
`id` varchar(255) NOT NULL default \'\',
`artikul` varchar(255) NOT NULL default \'\',
`name` text NOT NULL,
`opt` varchar(255) NOT NULL default \'\',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
id- ключ, содержит идентификатор записи из 1С (например,00001400).
Добавление в таблицу происходит в режиме замены, т.е. если есть такая запись,
изменяются все поля кроме id, если нет записи, добавляется новая строчка.
Задача организовать перемещение записей вверх вниз, по умолчанию select
order by id.
Целесообразно ли добавить в таблицу скажем поле pos, со значениями
1,2,3,4, И менять их если вверх то pos-1, если вниз, то pos+1
И при выводе таблицы делать выборку по этому полю.
Но как тогда поступать при добавлении новой строки?
Всегда искать pos с максимальным значением и увеличивать его на единицу.
По-моему это увеличит производительность обработки в разы.
Все обработчики у меня на php
Может кто нибудь сталкивался с таким?
В правильном направлении я движусь?
CREATE TABLE `prices` (
`id` varchar(255) NOT NULL default \'\',
`artikul` varchar(255) NOT NULL default \'\',
`name` text NOT NULL,
`opt` varchar(255) NOT NULL default \'\',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
id- ключ, содержит идентификатор записи из 1С (например,00001400).
Добавление в таблицу происходит в режиме замены, т.е. если есть такая запись,
изменяются все поля кроме id, если нет записи, добавляется новая строчка.
Задача организовать перемещение записей вверх вниз, по умолчанию select
order by id.
Целесообразно ли добавить в таблицу скажем поле pos, со значениями
1,2,3,4, И менять их если вверх то pos-1, если вниз, то pos+1
И при выводе таблицы делать выборку по этому полю.
Но как тогда поступать при добавлении новой строки?
Всегда искать pos с максимальным значением и увеличивать его на единицу.
По-моему это увеличит производительность обработки в разы.
Все обработчики у меня на php
Может кто нибудь сталкивался с таким?
В правильном направлении я движусь?