Not quite. This would be correct if there were a one-to-many relationship between authors and books (ie if each book was allowed only one author), but the OP has a many-to-many relationship there - presumably on the grounds that some books have several authors - and, like everyone, is wondering how to make the joining table invisible. The short answer is that s/he does have to create a My::DB::AuthorBook joining class, but s/he will probably never need to access it directly. It's in the pod under 'mapping', a subheading of 'relationships'.