You're going to hate me for this..
Unless you duplicate the name/heading of an article, why do you need to do *ANY* of that?
Why not simply
SELECT * FROM articles WHERE heading = 'Save Your Taxes For A CPA'
The only reason for the sections/dimensions/subsections is for your own organization. Nobody said you had to actually use them when looking for a given article.
Assuming that YOUR code generates the URL
then you *know* the article exists.
And if somebody passes you a bogus URL:
Well, so what if that article doesn't exist? Toss them back to the starting page.
And if somebody gives you a bogus path:
all you really need to do is verify that the given section and subsection exist. Or maybe you don't even care.