| |||||
My SqlКак сделать, чтобы записи в таблице нумеровались «без пробоев»?Как сделать, чтобы записи в таблице нумеровались «без пробоев», т.е. первичные ключи шли по порядку 1,2,3,4? Ведь когда я удаляю одну из записей, то получается что-то типа 1,2,4,5, а 3-го нет. Вам это не нужно! Но если вам все-таки это очень-очень нужно, то мне придется повторить: вам этого не нужно! Первичный ключ нужен не для того, чтобы по нему можно было строить красивые HTML-таблички c нумерацией, и не для сортировки (см. пункт 2). Он нужен для идентификации записей, чтобы по значению идентификатора можно было найти единственную и неповторимую запись. Он нужен для того, чтобы одна таблица могла ссылаться на другую, но не для нумерации. Забудьте, что это число, это просто уникальное значение.
Не убедил? Тогда представьте, что есть прайс-лист. Табличка groups (группы товаров): +----------------------------+-------------------+и табличка goods (товары): +---------------------------+--------------+-------------------+Теперь мы завели товары, группы товаров, все связали между собой с помощью поля group_id в таблице goods и ушли в горы. Но вот кто-то из шефов решил убрать какую-то группу товаров. Вы её убираете, заполняете «дыры» в нумерации таблицы groups, а про то, что надо изменить все соответствующие записи в goods случайно забыли... (я тоже никогда ничего не забываю, но мало ли что бывает :)).
И начинается самое интересное – часть товаров, как всегда, самых важных, куда-то пропадает, часть волшебным образом «переносится» в другие группы. Мониторы продаются в книжном отделе, пиво в компьютерах (это, конечно, не страшно) и так далее. Да, конечно, вы все предусмотрите и ничего не забудете. Но зачем? Для того, чтобы иметь напротив каждой строки порядковый номер? Но нумеровать строки можно и нужно в скриптах. Вот простейший пример:
<?Вы не поверите. Эта «задача» действительно решается в полторы строки кода.
Много комментариев (6).
[Показать комментарии/форму]
| |||||