Делаю современный аналог goodsmatrix.ru и
habrahabr.ru/post/78826
Хочу хранить товары со штрихкодом и без него.
Штрихкоды хранятся в таблице с полем Unsigned BIGINT (он допускает значения от 0 до 18446744073709551615):
CREATE TABLE IF NOT EXISTS `goods_item` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`gtin` bigint(16) unsigned DEFAULT NULL, -- штрихкод
`category_id` int(10) unsigned DEFAULT NULL,
`name` varchar(120) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `gtin_UNIQUE` (`gtin`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Обычно штрихкод состоит из 13 цифр и не может начинаться на 2.
И появилась идея, ID убрать, а GTIN сделать primary и AUTO_INCREMENT поставить 20000000000 получится место для 9 миллиардов ключей для товаров без штрихкода и поле для идентификации всех товаров будет одно. То есть, если штрихкод не указывать то в него записывается значение AUTO_INCREMENT.
Это хорошая идея или могут возникнуть какие-нибудь проблемы?