How to have a node which displays & interacts differently with different type of users?
There are many ways to accomplish this but here's one:


create content type Book
create content type Review
add a custom status field to Review (select list) and add the three states (admin approval, author approval, approved)
download and enable references module (also enable submodule node reference)
download and enable rules module (also enable rules ui submodule)
add a node reference field to Review (e.g. autocomplete widget)
create roles admin_reviews, author, reviewer
create view lists for reviews content and set permissions per role for admin_reviews, author and reviewer pages. Filter on field status of review for each role
use field permissions module to show / hide fields per role

create rules to set status of review (After saving new content -> set data value)