I wouldn't say "unwieldy". (An Article Slug should never change once it is created.)
I just want an ID for easy reference.
(It is easier to look for and refer to an Article by "ID=9327" than to search through 10,000 records looking for "SLUG = "does-outsourcing-make-sense-for-small-businesses.php")
joining other tables to the article table could be done on either the PK or UK
defining the FK in other tables, though, i would use id, not slug
Okay, but the other issue I am trying to avoid is this...
If I go the "Natural Keys" way, then I will do that almost entirely for readability.
If I can take a Junction Table - and by using "Natural" Foreign Keys - and get this...
Legal Featured Legal Litigation WhenASoleProprietorGetsSued.php
...then having "Natural Keys" just saved me some work.
But - as above - if I insist on wanting an "ID" using AutIncrement to easily reference each Article, but I follow your advice of using an ID for the Foreign Key, then my Junction Table would degrade to this...
Legal Featured Legal Litigation 9327
And then I'd have to do a join to get human-readable results, at which point I might as well scrap using "Natural Keys", and go with "Derived Keys" all the way around?! (I'm probably being extreme to make a point, but I'm sure you follow me.)