В компьютерной науке существует целый топи c, известный как нормализация базы данных, , где они обсуждают такие вещи, как "первая, вторая и третья нормальные формы".
Основной продукт этого является то, что ключи базы данных сами по себе не должны нести информацию. Они должны «однозначно идентифицировать ряд» и не более того. Итак, целое число с автоинкрементом - это хорошая вещь для использования в качестве первичного ключа. Затем поместите индекс ... возможно, индекс UNIQUE
... на country_code
.
. В других приложениях я использовал такие вещи, как uuid's
... строки с гарантированным уникальным идентификатором .. в качестве первичных ключей. База данных генерирует значение uuid автоматически. Теперь у меня есть кое-что, что я могу перенести из одной базы данных в другую без двусмысленности. (Я также использовал автоматически сгенерированные uuid
поля в базах данных, которые использовали ключи автоинкремента.)
Итак, у вас есть несколько хороших альтернатив, но в каждом случае первичные ключ только идентифицирует строку и не является «частью данных».