|
|
|
Таблица как полноценный список
|
|||
|---|---|---|---|
|
#18+
Дана таблица состоящая из записей: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 17:10 |
|
||
|
Таблица как полноценный список
|
|||
|---|---|---|---|
|
#18+
http://dev.mysql.com/manual/ru А вообще "по отношению" к таблице это ИМХО полная чушь. И собственно зачем так делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 17:32 |
|
||
|
Таблица как полноценный список
|
|||
|---|---|---|---|
|
#18+
точно так же. Делаешь три поля id, value, next. В nextе будет сидеть id следующей записи. По желанию можно сделать двусвязный список. ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 17:55 |
|
||
|
Таблица как полноценный список
|
|||
|---|---|---|---|
|
#18+
ох, мля, нет, не так. ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 17:59 |
|
||
|
Таблица как полноценный список
|
|||
|---|---|---|---|
|
#18+
Berkuthttp://dev.mysql.com/manual/ru А вообще "по отношению" к таблице это ИМХО полная чушь. И собственно зачем так делать? +1 Без ORDER BY сервер имеет полное право вернуть набор вперемешку, причем перемешивать при каждом запросе по-разному и по-новой. Если он так не делает (а он так не делает) то это только потому что у него план чаще всего одинаковый. Так что без поля "позиция" это все не решается. Что ставит проблему исправления этого поля при вставках по всей таблице. Можно приделать рядом еще одну таблицу, из 3-х полей, свой_id, верхний_id,нижний_id, и при вставке записи в основную таблицу рулить этими ссылками как бог на душу положит. Выбирать правда придется поштучно, в майскуле CONNECT BY отсутствует... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 18:15 |
|
||
|
Таблица как полноценный список
|
|||
|---|---|---|---|
|
#18+
2 maXmo Наверное, вы имели в виду просто сделать третье поле, которое и будет определять позицию элемента в "списке"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 18:15 |
|
||
|
Таблица как полноценный список
|
|||
|---|---|---|---|
|
#18+
Berkut, похоже, иначе никак, думал малой халявой отделаться ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 18:23 |
|
||
|
Таблица как полноценный список
|
|||
|---|---|---|---|
|
#18+
2 Astron При update можно обойтись и без дополнительных таблиц. Перед вставкой нового элемента определяем позицию куда хотим вставить. Затем делаем апдейт position+1 для всех строк, у которых position>= заданной. Потом вставляем новый элемент с данной позицией. Примечание: Это простейший пример, при условии что нет "разрывов" в позициях и нет удаления строк. В противном случае просто добавятся условия обновления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 18:25 |
|
||
|
Таблица как полноценный список
|
|||
|---|---|---|---|
|
#18+
2 berkut читайте внимательнее написанное, а уж потом учите взрослых дядей :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 18:34 |
|
||
|
Таблица как полноценный список
|
|||
|---|---|---|---|
|
#18+
2 Astron Взрослый дядя , я всего лишь предложил вариант как можно оперировать одной таблицей. Если вы считаете, что использование дополнительной таблицы лучше - ради бога. Никто вас не учит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 21:47 |
|
||
|
Таблица как полноценный список
|
|||
|---|---|---|---|
|
#18+
2 Berkut вот что я писал в своем посте.... Astron Так что без поля "позиция" это все не решается. Что ставит проблему исправления этого поля при вставках по всей таблице. Так что мой пассаж про "не учите взрослых дядей" (раз сами читать не умеете) имеет под собой основания, ведь верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2005, 17:30 |
|
||
|
Таблица как полноценный список
|
|||
|---|---|---|---|
|
#18+
2 Astron Astron 2 Astron При update можно обойтись и без дополнительных таблиц. Полагаю стоит закрыть полемику, т.к. мы все равно говорим на разных языках. Найдите в данном утверждении " При update можно обойтись и без дополнительных таблиц. " хоть что-то, что имело бы отношение к "учению взрослых дядей". Читайте внимательнее : " всего лишь предложил вариант как можно оперировать одной таблицей. ". Кроме того, я вовсе не против ваших утверждений :) regards! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2005, 18:16 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=656&tid=1853967]: |
0ms |
get settings: |
5ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 325ms |

| 0 / 0 |
