Я бы предпочел добавить дополнительное поле в качестве первичного ключа.
Основная причина в том, что -imho- первичные ключи не должны иметь значения 'business'.Первичный ключ - это просто административный элемент, который важен только для базы данных, так что целостность может быть гарантирована.
Как уже упоминал Брайан, добавив суррогатный первичный ключ, вы можете - в вашем случае - разрешить изменение пользователяего имя пользователя без проблем.
Значение первичного ключа никогда не следует менять: в противном случае обновление может стать очень дорогим, если у вас много внешних ключей.Все эти изменения должны быть каскадно связаны с соответствующими таблицами.
Кроме того, целое число составляет, например, 4 байта, а столбец имени пользователя намного больше.
Это не только означает, что вы будетезанимают гораздо больше места в связанных таблицах, но это также означает, что ваш индекс будет увеличиваться.
Корзины, составляющие ваш индекс, будут содержать меньше «указателей записи», что означает, что у вас будет больше блоков, что означает, что вашИндекс будет медленнее.