Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Таблица как полноценный список / 13 сообщений из 13, страница 1 из 1
06.06.2005, 17:10
    #33103184
quazatron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица как полноценный список
Дана таблица состоящая из записей: R3 R5 R4 R10 ... R2 R8.
Не подскажет ли всезнающий all как лучше реализовать следующие вещи:

1) вставить новую запись R11 в "начало"
R11 R3 R5 R4 R10 ... R2 R8

2) добавить новую запись R11 к "концу"
R3 R5 R4 R10 ... R2 R8 R11

3) переместить запись R2 на "первую позицию" (со сдвигом)
R2 R3 R5 R4 R10 ... R8

На низком уровне есть удовлетворительное решение этой проблемы - связный список. Как это можно сделать в MySQL? И нужно ли придумывать абстракции "начало", "конец", "запись номер N от начала" по отношению к таблице?

ЗЫ Посоветуйте хороший RTFM.
...
Рейтинг: 0 / 0
06.06.2005, 17:32
    #33103249
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица как полноценный список
http://dev.mysql.com/manual/ru

А вообще "по отношению" к таблице это ИМХО полная чушь. И собственно зачем так делать?
...
Рейтинг: 0 / 0
06.06.2005, 17:55
    #33103315
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица как полноценный список
точно так же. Делаешь три поля id, value, next. В nextе будет сидеть id следующей записи. По желанию можно сделать двусвязный список.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
06.06.2005, 17:59
    #33103330
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица как полноценный список
ох, мля, нет, не так.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
06.06.2005, 18:15
    #33103364
Astron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица как полноценный список
Berkuthttp://dev.mysql.com/manual/ru

А вообще "по отношению" к таблице это ИМХО полная чушь. И собственно зачем так делать?

+1
Без ORDER BY сервер имеет полное право вернуть набор вперемешку, причем перемешивать при каждом запросе по-разному и по-новой. Если он так не делает (а он так не делает) то это только потому что у него план чаще всего одинаковый. Так что без поля "позиция" это все не решается. Что ставит проблему исправления этого поля при вставках по всей таблице. Можно приделать рядом еще одну таблицу, из 3-х полей,
свой_id, верхний_id,нижний_id, и при вставке записи в основную таблицу рулить этими ссылками как бог на душу положит. Выбирать правда придется поштучно, в майскуле CONNECT BY отсутствует...
...
Рейтинг: 0 / 0
06.06.2005, 18:15
    #33103367
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица как полноценный список
2 maXmo
Наверное, вы имели в виду просто сделать третье поле, которое и будет определять позицию элемента в "списке"?
...
Рейтинг: 0 / 0
06.06.2005, 18:23
    #33103397
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица как полноценный список
Berkut, похоже, иначе никак, думал малой халявой отделаться
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
06.06.2005, 18:25
    #33103403
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица как полноценный список
2 Astron
При update можно обойтись и без дополнительных таблиц.
Перед вставкой нового элемента определяем позицию куда хотим вставить. Затем делаем апдейт position+1 для всех строк, у которых position>= заданной. Потом вставляем новый элемент с данной позицией.

Примечание: Это простейший пример, при условии что нет "разрывов" в позициях и нет удаления строк. В противном случае просто добавятся условия обновления.
...
Рейтинг: 0 / 0
06.06.2005, 18:34
    #33103425
Astron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица как полноценный список
2 berkut
читайте внимательнее написанное, а уж потом учите взрослых дядей :-)
...
Рейтинг: 0 / 0
06.06.2005, 21:47
    #33103606
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица как полноценный список
2 Astron
Взрослый дядя , я всего лишь предложил вариант как можно оперировать одной таблицей. Если вы считаете, что использование дополнительной таблицы лучше - ради бога. Никто вас не учит.
...
Рейтинг: 0 / 0
07.06.2005, 17:30
    #33105574
Astron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица как полноценный список
2 Berkut
вот что я писал в своем посте....
Astron Так что без поля "позиция" это все не решается. Что ставит проблему исправления этого поля при вставках по всей таблице.

Так что мой пассаж про "не учите взрослых дядей" (раз сами читать не умеете) имеет под собой основания, ведь верно?
...
Рейтинг: 0 / 0
07.06.2005, 18:16
    #33105727
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица как полноценный список
2 Astron
Astron
2 Astron
При update можно обойтись и без дополнительных таблиц.

Полагаю стоит закрыть полемику, т.к. мы все равно говорим на разных языках.

Найдите в данном утверждении " При update можно обойтись и без дополнительных таблиц. " хоть что-то, что имело бы отношение к "учению взрослых дядей".

Читайте внимательнее : " всего лишь предложил вариант как можно оперировать одной таблицей. ".
Кроме того, я вовсе не против ваших утверждений :)

regards!
...
Рейтинг: 0 / 0
08.06.2005, 13:10
    #33107085
quazatron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица как полноценный список
Спасибо за советы.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Таблица как полноценный список / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]