If a buyer can be a seller (and vice versa), why not have a single customer table with a set of flags for account type?
If books are unique (i.e. one copy of Moby Dick is viewed separate from another copy ... more like eBay than Amazon), then your book table could have a buyer and seller foreign key. Your store's simplest design is now down to two tables. For example:
Cust table
cust_id
name
is_buyer
is_seller
Book table
book_id
description
seller_cust_id
buyer_cust_id
Edit: I don't think this solution changes even if a single buyer/seller must have two accounts. You would just add the restriction in your app that a customer cannot be both a buyer and seller. The nice thing about one table is that you don't need to duplicate security/login/etc. logic ...
Edit 2: Also, if a buyer can buy multiple books, wouldn't it make more sense to have a shopping cart table that stores each book purchased by a buyer?