Добрый день,
Я использую во всех таблицах для нумерации записей (заказов, нарядов) поле типа "номер" со значением "автонумерация".
У юзеров нет прав на его ручное редактирование.
Но регулярно возникает ситуация, когда у двух записей номера "волшебным" образом меняются местами, или, как бы это сказать, меняются связями между собой.
И обычно разница в номерах составляет 1. Т.е. было допустим ссылка на запись 160, а потом вдруг стала ссылка на запись 161.
В чем могут быть грабли ? Где копать ?
Проблема с полями типа "номер"
Автор kg0, 12 февр. 2010 09:46
Сообщений в теме: 2
#1
Отправлено 12 Февраль 2010 - 09:46
#2
Отправлено 12 Февраль 2010 - 10:04
"У юзеров нет прав на его ручное редактирование" - но у кого-то они как я понимаю все таки есть? Иначе бы данная ситуация просто не возникла. Дело в том что поле типа "номер" имеет одно единственное отличие от полей типа "число" - если вы пытаетесь ввести в одной из записей уже существующее в другой значение, все остальные записи с номером больше смещаются на единицу.
Например, у вас есть записи:
1. Иван
2. Петр
3. Федор
4. Ольга
Если вы создаете новую запись Семен с номером 3 (на котором уже сидит Федор), то в результате получите следущий порядок:
1. Иван
2. Петр
3. Семен
4. Федор
5. Ольга
Данная ситуация разумеется возможна только при ручном задании номера. Если у вас стоит автонумерация и запрещено еще менять, то подобного быть не должно.
Например, у вас есть записи:
1. Иван
2. Петр
3. Федор
4. Ольга
Если вы создаете новую запись Семен с номером 3 (на котором уже сидит Федор), то в результате получите следущий порядок:
1. Иван
2. Петр
3. Семен
4. Федор
5. Ольга
Данная ситуация разумеется возможна только при ручном задании номера. Если у вас стоит автонумерация и запрещено еще менять, то подобного быть не должно.
#3
Отправлено 12 Февраль 2010 - 11:50
Разработчик (12.2.2010, 10:04) писал:
"У юзеров нет прав на его ручное редактирование" - но у кого-то они как я понимаю все таки есть? Иначе бы данная ситуация просто не возникла. Дело в том что поле типа "номер" имеет одно единственное отличие от полей типа "число" - если вы пытаетесь ввести в одной из записей уже существующее в другой значение, все остальные записи с номером больше смещаются на единицу.
Например, у вас есть записи:
1. Иван
2. Петр
3. Федор
4. Ольга
Если вы создаете новую запись Семен с номером 3 (на котором уже сидит Федор), то в результате получите следущий порядок:
1. Иван
2. Петр
3. Семен
4. Федор
5. Ольга
Данная ситуация разумеется возможна только при ручном задании номера. Если у вас стоит автонумерация и запрещено еще менять, то подобного быть не должно.
Например, у вас есть записи:
1. Иван
2. Петр
3. Федор
4. Ольга
Если вы создаете новую запись Семен с номером 3 (на котором уже сидит Федор), то в результате получите следущий порядок:
1. Иван
2. Петр
3. Семен
4. Федор
5. Ольга
Данная ситуация разумеется возможна только при ручном задании номера. Если у вас стоит автонумерация и запрещено еще менять, то подобного быть не должно.
Права есть только у администратора программы, но он данных в программу не вводит....
хм...буду думать...
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных













