Посмотрите архитектуру у фреймворков и т.д. ведь там все это уже реализовано.
Чем в каждый раз дергать БД я бы сделал к примеру такую структуру папок/файлов как в yii, в зависимости от URL вызывается тот или иной класс/метод.
/catalog/view/1
создаете папку и файл в ней: controllers/CatalogController.php и добавляете туда метод view
Далее просто разбираете url и в зависимости от есть класс/метод или нет, показываете или выводите ошибку.
простой роутер написать можно за несколько минут, explode по слэшу, первый аргумент название класса, второй название метода, а все остальное передаете в метод и вуаля
ваш метод, что вы описали выше, я бы использовал для записи к примеру постов в блоге и так далее.
Все зависит от конкретно случая