Приложение для управления складом - автоинкремент букв для первичного ключа. - PullRequest
0 голосов
/ 26 января 2012

Можно ли автоматически увеличивать буквы в MySql?Если нет, можете ли вы предложить и альтернативу на основе описания моего приложения ниже?

Справочная информация:

Я создаю приложение управления складом.Чтобы найти предметы на складе, я думаю, что я буду нумеровать столбцы полки 1, 2, 3 .. и строки полки с помощью a, b, c, ... aa, ab, ac .... Чтобы найти определенную ячейку вна полке вы получите комбинацию из двух, например, виджеты расположены в «4d».Для этого у меня будет таблица ShelfColumn с автоматически увеличивающимися первичными ключами и таблица ShelfRow с автоматически увеличивающимися буквами.Ассоциативная таблица объединит эти два, чтобы сформировать уникальные предпочтения полки, чтобы найти мои товары.

Ответы [ 2 ]

2 голосов
/ 26 января 2012

Нет, вы не можете автоматически увеличивать буквы, и вам это не нужно.

Краткий рассказ об auto_increment PK в MySQL: он особенный в том смысле, что вы никогда не должны полагаться на его поведение.Он также используется InnoDB для определения того, как физически сохранять данные на жесткий диск.

Поэтому лучше всего, если вы просто позволите auto_increment увеличивать числа, не вмешиваясь и не пытаясь добавлять к нему буквы.

С другой стороны, зачем маркировать строки на полках буквами?Я не вижу причин, почему бы не обозначить его номером.Вы получите из этого красивую матрицу, и каждый сразу узнает, что такое столбец 10, строка 25 и как ее найти.

1 голос
/ 26 января 2012

Не думаю, что автоинкремент будет поддерживать такую ​​функциональность.В конце концов, он должен был бы знать о каждом языке и каждом наборе символов, чтобы знать, к какому автоинкременту, а также что он должен делать, когда добирается до последнего символа в данном алфавите, не говоря уже о том, что делать с не-символьными символами(пунктуация, пробелы, контрольные коды и т. д.).

Вам придется либо реализовать выбор букв в логике приложения, либо использовать числовое значение для строк и преобразовать их в буквы на выходе (a для 1, b для 2, aa для 27, ab для28 и т. Д.).

...