Если строковый ключ не слишком широкий, то он гораздо лучше использования "фальшивого" PK. На производительность вставок/джойнов в пределах реальной погрешности НЕ влияет: не нужно слушать тех, кто когда-то прочел эту байку, достаточно самому поставить нехитрый опыт с реальной средней шириной записи. Единственное ограничение тут - возможное переиспользование ключа, но если этого не допускается, как в данной задаче - так и нужно делать.