[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: auto_increment и организация хранения данных
pavel
Давно работают и с mysql и c php, но как-то не не задумывался.

Имеется таблица в базе данных, где хранятся характеристики кого-либо товара:

id` int(10) NOT NULL auto_increment,
`name` varchar(50) default NULL,
`value` varchar(50) default NULL,
`prod_id` int(10) NOT NULL

Т.е. все просто имя=значение. При создании товара с prod_id и 50 характеристиками создается 50 строк и с помощью auto_increment id выдается новое значение для каждой характеристики.
При обновлении товара - самый простой вариант - удалить строки в базе, содержащие все характеристики товара с определенным prod_id (чтобы не просматривать каждую строку в отдельности на существование) и добавить новые. При этом auto_increment им опять же выдаст новые значения.

Но размер поля id не резиновый. Я так понимаю, когда auto_increment достигнет максимального значения, данные добавляться не будет.

Вопрос: есть ли какие-то средства, чтобы auto_increment занимал пропущенные id, а не тупо последний. Или нужно иногда приводить таблицу в потребный вид, чтобы все id шли по порядку, начиная с 1. Или мой подход, в принципе неверный?



Спустя 42 минуты, 45 секунд (8.06.2011 - 13:40) waldicom написал(а):
Цитата (pavel @ 8.06.2011 - 10:57)
Или мой подход, в принципе неверный?

Да, это неправильный подход. Не обращайте внимание на "пропуски".
При правильном выборе типа поля `id` проблем не возникнет.

Спустя 6 минут, 4 секунды (8.06.2011 - 13:46) pavel написал(а):
Цитата (waldicom @ 8.06.2011 - 14:40)
Цитата (pavel @ 8.06.2011 - 10:57)
Или мой подход, в принципе неверный?

Да, это неправильный подход. Не обращайте внимание на "пропуски".
При правильном выборе типа поля `id` проблем не возникнет.

Ну да при прайсе в 2000 товаров с 20 характеристиками, при условии, что весь прайс будут 2 раза в день обновлять - хватит на 147 лет!)))
Ну а какой тут правильный подход по вашем мнению? Огласите!

Спустя 11 минут, 15 секунд (8.06.2011 - 13:57) waldicom написал(а):
Так это и есть "правильный" подход. Bigint для поля `id`, а еще и unsigned, то там на миллионовстотыщмиллионов хватит.

Спустя 1 час, 15 минут, 39 секунд (8.06.2011 - 15:13) pavel написал(а):
Цитата (waldicom @ 8.06.2011 - 14:40)

Цитата (pavel @ 8.06.2011 - 10:57)
Или мой подход, в принципе неверный?

Да, это неправильный подход. Не обращайте внимание на "пропуски".
При правильном выборе типа поля `id` проблем не возникнет.

Понятно, смутила слово неправильный, поэтому переспросил.


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.