|
|
|
Вставка с сохранением порядка
|
|||
|---|---|---|---|
|
#18+
drevГоспода, а может быть подойдет решение со строкой: 1, 2,3,4 , 5 разбиваем участок 2 на 2 под-участка 1, 2.1, 2.2, 3, 4, 5 и т.д. Сортировать неудобно. Если 1 2.1 2.2 3 Сортируются просто, то 1 10 2 При обычной строковой сортировке выстраиваются не так как нужно, а выдумывать хитрые сортировки как то не хочется. Хранить историю изменений участка не требуется и вредно, поскольку для этого гребуется дополнительное пространство в БД. Достаточно просто столкнуться с ограничением на длину строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2008, 14:38 |
|
||
|
Вставка с сохранением порядка
|
|||
|---|---|---|---|
|
#18+
Интересно что надумал автор топика ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2008, 21:36 |
|
||
|
Вставка с сохранением порядка
|
|||
|---|---|---|---|
|
#18+
Андрей КамимураА что если использовать для нумерации простые дроби такое как: 1/2 3/4...и т.д, а числитель и знаменатель хранить в разных(2-х) полях Пример: 1. ввел два участка: А(0) и В(1) 2. теперь надо ввести участок С наприсем между А и В высчитываем дробь С=0+1/2=1/2 получаем А(0), с(1/2), В(1) 3. А теперь надо ввести 3 участка D, E, F например между С и В новый_дроб_номер=B+(B-C)/(кол_во_ввод_участвок+1)*поряд_номер_новых_участков // D-1, E-2, F-3 Считаем: D=1/2+(1-1/2)/(3+1)*1=5/8 E=1/2+(1-1/2)/(3+1)*2=6/8 F =1/2+(1-1/2)/(3+1)*3=7/8 Итого получаем A(0), C(1/2), D(5/8), E(6/8), F(7/8), B(1) вообщем такая идея... З.Ы. а в таблице можно создать 3-е результирующие поле типа DOUBLE равное отношению числ/знам, и собственно по иму сортировать З.З.Ы правда надо реализовать некоторые элемен функции по работе с простыми дробями, но это будет дешевле чем перебор/измен всех записей мож пойдет такой вариант...... А что если кит на слона нападет? Вы все равно не решите проблемы переполнения, тоесть падения точности. Хоть 3, хоть 10 полей все равно в этой задаче эквивалентны перечислимому типу большой длины. И кол-во вставок до перетряски всегда будет линейно зависить от числа использованых битов с коофициентом 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2008, 14:50 |
|
||
|
Вставка с сохранением порядка
|
|||
|---|---|---|---|
|
#18+
mcureenabКороче нумеруйте интервалы целыми числами с большим шагом, чтобы зарезервировать место для дальнейших вставок, по мере надобности перенумеровывайте. Перенумеровывать скорее всего придётся не часто, если вообще придётся, а запросы к таким данным будут простые и эффективные.+1 Вполне себе стандартный подход, первичный ключ для ссылок на сущность и некое числовое поле для сортировки с большим шагом, чтобы можно было промежуточные значения поставить если понадобится вставить запись в середку :) авторЕще одно соображение :) вы имеете дело с дорогой, а она конечна и имеет длину, так что можете в качестве этого числа взять например километр на котором начинается секция (неплохо будет определить правило откуда дорога начинается, с какой стороны ее нулевая отметка), если секции меньше километра то можно за минимальную единицу взять или 100 или 10 или 1 метр это зависит от того какая детализация нужна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2008, 00:23 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35213612&tid=1543965]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
19ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 318ms |

| 0 / 0 |
