Автор Тема: перемещение записей вверх-вниз mySQL, php  (Прочитано 3644 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн WG

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 39
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Есть таблица 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
Может кто нибудь сталкивался с таким?
В правильном направлении я движусь?

Оффлайн Altaxar

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 222
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.moroseac.ru/
перемещение записей вверх-вниз mySQL, php
« Ответ #1 : 20 Апреля 2007, 11:36:15 »
Как я вижу у тебя не стоит auto_increment, так поставь его на pos и также  PRIMARY KEY на pos.

CREATE TABLE `aaa` (
`id` INT NOT NULL ,
`pos` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 50 ) NOT NULL ,
PRIMARY KEY ( `id` , `pos` )
) TYPE = MYISAM ;
Не все является тем чем кажется.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28