Перейти к содержимому


Проблема с полями типа "номер"


Сообщений в теме: 2

#1 kg0

    Активный участник

  • Пользователи
  • PipPipPip
  • 145 сообщений

Отправлено 12 Февраль 2010 - 09:46

Добрый день,

Я использую во всех таблицах для нумерации записей (заказов, нарядов) поле типа "номер" со значением "автонумерация".
У юзеров нет прав на его ручное редактирование.

Но регулярно возникает ситуация, когда у двух записей номера "волшебным" образом меняются местами, или, как бы это сказать, меняются связями между собой.
И обычно разница в номерах составляет 1. Т.е. было допустим ссылка на запись 160, а потом вдруг стала ссылка на запись 161.


В чем могут быть грабли ? Где копать ?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 12 Февраль 2010 - 10:04

"У юзеров нет прав на его ручное редактирование" - но у кого-то они как я понимаю все таки есть? Иначе бы данная ситуация просто не возникла. Дело в том что поле типа "номер" имеет одно единственное отличие от полей типа "число" - если вы пытаетесь ввести в одной из записей уже существующее в другой значение, все остальные записи с номером больше смещаются на единицу.

Например, у вас есть записи:

1. Иван
2. Петр
3. Федор
4. Ольга

Если вы создаете новую запись Семен с номером 3 (на котором уже сидит Федор), то в результате получите следущий порядок:

1. Иван
2. Петр
3. Семен
4. Федор
5. Ольга

Данная ситуация разумеется возможна только при ручном задании номера. Если у вас стоит автонумерация и запрещено еще менять, то подобного быть не должно.

#3 kg0

    Активный участник

  • Пользователи
  • PipPipPip
  • 145 сообщений

Отправлено 12 Февраль 2010 - 11:50

Просмотр сообщенияРазработчик (12.2.2010, 10:04) писал:

"У юзеров нет прав на его ручное редактирование" - но у кого-то они как я понимаю все таки есть? Иначе бы данная ситуация просто не возникла. Дело в том что поле типа "номер" имеет одно единственное отличие от полей типа "число" - если вы пытаетесь ввести в одной из записей уже существующее в другой значение, все остальные записи с номером больше смещаются на единицу.

Например, у вас есть записи:

1. Иван
2. Петр
3. Федор
4. Ольга

Если вы создаете новую запись Семен с номером 3 (на котором уже сидит Федор), то в результате получите следущий порядок:

1. Иван
2. Петр
3. Семен
4. Федор
5. Ольга

Данная ситуация разумеется возможна только при ручном задании номера. Если у вас стоит автонумерация и запрещено еще менять, то подобного быть не должно.


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

хм...буду думать...





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных