Я разрабатываю базу данных, в которой некоторые таблицы имеют изменяемый ПК, я хочу знать, хороший или плохой дизайн? Это затрудняет программирование программиста?
Плохой. Если ПК регулярно меняется (не в рамках некоторой реогринанизации), значит, это не был естественный ПК или дизайн приложения плохой.
Звучит сложно кодировать. Вы меняете первичный ключ для записи, и вам нужно изменить все ссылки на этот первичный ключ во всех таблицах. Легко облажаться. Просто используйте последовательность (или auto_increment или что-то еще) и создайте первичный ключ, который не является данными. Или выберите первичный ключ, который вряд ли когда-либо понадобится менять.
Это вроде как было сказано, но (моя) лучшая практика - всегда называть первичный ключ id и делать его серийным (целое число с автоинкрементом) (целое число идентификатора в MSSQL). С моим много раз случалось, что мне приходилось менять ПК, когда это был какой-то естественный ключ, например, чье-то имя.