Для чего нужен параметр показывать по месту сортировки?
Когда для таблицы включен параметр сортировать по полю порядок у пользователей есть возможность вручную изменять порядок следования строк.
Также это дает возможность сразу показывать строки по месту сортировки при их добавлении.
Еще одним бонусом является возможность вставить строки кодом поле определенной строки.
Как использовать n и after для вставки в нужное место?
Для того, что бы поместить новые строки после определенной имеющейся в таблице строки — надо получить id
этой строки.
Потом в insert или insertList используется параметр after
в которй передается id
после которого необходимо произвести вставку:
=: insert(table: 'table'; field: 'data' = #data; after: $select)
select: select(table: 'table'; field: 'id'; where: 'summ' >= 100; order: 'summ' asc)
Добавим строки после наименьшего значения суммы summ >= 100
.
С какими сложностями можно столкнуться при постоянной вставке между имеющимися строками?
Дело в том, что при вставке между двумя имеющимися значениями при включенном n
происходит его дробление. Несмотря на то, что n
имеет очень большую разрядность — этот ресурс ограничен!
Какое техническое действие необходимо запроектировать в таких случаях?
Если у вас имеется таблица, в которую постоянно идет вставка между строк — необходимо поставить на крон выполнение normalizeN.
При нормализации n
не отрабатывает единица пересчета. Те не происходит пересчета строк. Если поля в строках ссылаются на #n
они не будут пересчитаны!