Na podstawie twojego komentarza powyżej utworzyłbym po prostu klasę książki, klasę autora, listę autorów i klasę rozdziału. Przypisz rozdziały księgi do listy obiektów Rozdziałów w samej księdze. Utrzymuj AuthorList jako dyktat ich identyfikatorów, wskazując na rzeczywiste obiekty Author. Użyj elementu członkowskiego danych obiektu Book, aby zawierać identyfikator; możesz zapewnić metodę, aby wyciągnąć autora z dyktatu AuthorList dla wygody.