I want to create in Drupal 8 a content type called Book with some fields you'd expect to be associated with it. Title, Author, Date, ISBN, URL
(I want two other content types: "Book Review" and "Book Author.").
I expect to do a lot of different things with books; it's much easier to have a separate content type for it which I can reuse.
The user (or the admin) would initially use the input form to publish the "Book" (i.e., To Kill a Mockingbird, Great Gatsby, etc)
Next a user having the "Book Reviewer" role would have an input form to publish his review (Title, a text field containing the review, a summary, rating) and publication date.
Here's the thing I don't understand.
Tom (who has the Book Reviewer role) would log on, select "Add Book Review". For this to work, Tom would need some way in the input form to look up the available book titles already inputted by users in order to choose the specific book he wants to review.
Can you accomplish this in Drupal 8? What is this functionality called? Could this reverse lookup be easily done from the Book Review input form? I'm unsure exactly how to implement this. I've seen explanations about how you can look up a specific user in the input form, and maybe from the DB point of view, all nodes are the same. But I'm not sure if looking up users is a special case.
Some more details:
I have seen that relationships are a way to connect fields from two different content types. But I'm unsure if you could display this kind of lookup function in the input form!
I can' predict how many books will be added or need to be looked up (maybe 50-1000?). But is there any hard limitation on book nodes you could search through?
Is this something you could do through Drupal core without needing to make a module?