Deux solutions :
1- ajouter aussi l'id dans l'URL : domaine.com/id/slug (mon blog peut servir d'exemple)
2- ajouter des numéros dans le cas que tu définies
-> domaine.com/joe
-> domaine.com/joe-2
C'est simple mais l'ago pourra peut-être rebuter et tu as nécessairement des pertes de perf à l'enregistrement de la données (et globalement rien à foutre).
Intérêt de la solution 1 : tu peux changer le slug sans te préocuper de l'accès à la données. Si je prend de nouveau mon blog comme référence, si je change le titre d'un article, il reste tout de même accessible quelque soit l'url (puisque l'id apparait dedans).
-> http://www.deblan.tv/post/478/Uzbl-Importer-ses-bookmarks-Firefox
-> http://www.deblan.tv/post/478/foo-bar
Intérêt de la solution 2 : quand il s'agit de page de CMS (une page de contact par exemple), tu ne veux pas que l'id apparaisse dans l'url.