Я всегда старался иметь целочисленный первичный ключ в таблице, несмотря ни на что. Но теперь я сомневаюсь, что это всегда необходимо.текстовые индексы против целых индексов в mysql
Предположим, у меня есть таблица продуктов, и каждый продукт имеет глобально уникальный номер SKU - это будет строка из 8 символов. Почему бы не сделать это ПК? Как правило, я бы сделал это поле уникальным индексом, но затем автоматически увеличил число int в качестве PK, так как я предполагал, что это будет быстрее, проще в обслуживании и позволит мне делать такие вещи, как легко получить последние 5 записей.
Но с точки зрения оптимизации, предполагая, что я только когда-либо буду соответствовать полному текстовому полю, а затем выполняя соответствующие текстовые запросы (например, как %%), вы можете подумать о каких-либо причинах не использовать текстовый первичный ключ, скорее всего типа varchar()?
Приветствия, imanc
возможно дубликат http://stackoverflow.com/questions/63090/surrogate-vs-natural-business-keys – outis