Используйте готовые роутеры (подсмотреть можете в микрофреймворках типа slim:
www.slimframework.com ).
htaccess нужно использовать чтобы все запросы свести к 1 скрипту, в котором уже роутер подключит нужный файл (если про Apache говорить)
В базе нужно хранить URL поста по которому она будет доступна, а затем в обработчике/контроллере (на который переведет роутер по указанному правилу) искать запись не по ид (как в первом варианте), а по url (как в варианте с ЧПУ)