Presumably library books have a fixed place on a shelf?
In which case I would simply mark a book as checked out and record the date when the book is due back and a reference to the user who checked it out.
On the user side, they can have a List
of books that they have currently checked out. This is a one-to-many relationship.
This way when the user checks the books back in you just need to flip some flags, you do not need to search for where the book "goes" on the shelf.
If you are trying to model a library however then the former approach would seem more applicable...