Имеется таблица в базе данных, где хранятся характеристики кого-либо товара:
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) | ||
Да, это неправильный подход. Не обращайте внимание на "пропуски". При правильном выборе типа поля `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) | ||
Да, это неправильный подход. Не обращайте внимание на "пропуски". При правильном выборе типа поля `id` проблем не возникнет. |
Понятно, смутила слово неправильный, поэтому переспросил.
_____________