Это называется велосипед.
Проблема решается очень просто:
"site.ru/book/php-dlya-chajnikov" - вот эта часть "php-dlya-chajnikov" называется "slug".
В БД создается дополнительное поле slug, куда при создании записи автоматически, или вручную записывается сокращенное название поста.
Затем просто делаем выборку по нему:
SELECT id, title, author FROM books WHERE slug='php-dlya-chajnikov'