Lexxtor
@Lexxtor
PHP, Yii2, Android

Как лучше сделать MySQL таблицу товаров, только с primary штрихкодом или еще с ID для для товаров без штрихкода?

Делаю современный аналог 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.

Это хорошая идея или могут возникнуть какие-нибудь проблемы?
  • Вопрос задан
  • 2491 просмотр
Пригласить эксперта
Ответы на вопрос 1
shcherbanich
@shcherbanich
Программист
AUTO_INCREMENT будет идти с максимального значения, пока все не забито под завязку, возможно сгенерируется реальный gtin, и возникнет проблема.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы