You are describing a classic many to many relationship. No scripting then or now is absolutely necessary for such a relaitonship, though a few scripts sometimes help make the process a bit more userfriendly or trap for errors.
People::__pkPeopleID = Adoption::_fkPeopleID
Animal::__pkAnimalID = Adoption::_fkAnimalID
IF the above notation is unfamiliar and you can't figure parts of it out, see this thread: Common Forum Relationship and Field Notations Explained
The above setup, however, isn't needed if an animal only needs to be linked to one People record. (I don't know if this is an animal shelter adoption or a zoo or wild animal "adoption".)
Assuming that you need this structure, you can enable "Allow creation of records via this relationship" for Adoption in the People to Adoption relationship and then you can place a portal to Adoption on your People layout and use a drop down list or Pop up menu of Animal ID's and Names to select an animal to adopt. Selecting an animal in this field creates a new record in the adoption table and automatically links it to the current People record.
To see a demo file of many to many relationships that illustrates this set up as well as some more sophisticated approaches, download this demo file: https://www.dropbox.com/s/oyir7cs0yxmbn6i/ManyToManywDemoWExtras.fp7
This is a .fp7 file so if you are using FileMaker 12, open it from the FileMenu instead of by doubleclicking it and FMP 12 will create a converted copy of the file and open it.
I was familiar with the above - the challenge is the # of records will likely exceed what is reasonable to use in a drop-down or pop-up menu (and I would want the pop-up/drop-down to be able to apply filters - and last time I checked the standard value-lists don't allow conditionals although I might be able to overload that using the "start from a relationship" option). So the scripting/etc. falls into the category of "make it easier" which is essentially a wizard (although if I can use scripts to define a value list on activation of a field...then that would probably work).
It is a resuce organization and prefer to use a true many to many vs. repeating fields/lookups as an animal hopefully has only a single adoption record - however sometimes the adoptions do not work out/etc.
There will be an outer set of tables as well (it will actually be people->application->adoption vs. people->adoption) as a person can have multiple applications, applications can be rejected or not and an adoption is actually the result of a decision upon an application.
Does the demo above include examples related to the "wizard" style/more user-friendly scenario as well?
I don't see any need for a "wizard" here, though it is an option that can be made to work. (Just seems way more complex than you really need.)
The previous demo file does show one way to list choices in a portal where you click a choice to establish a link to that record. Such a portal can be filtered to list animals that are members of a particular category.
There are a number of other methods that can be used to trim large value lists down to size.
Conditional value lists are one option. By selecting a "category" value in one field, the value list can then display only animals from that category. Thus, the user can select "Large Dog" and only see Large Dogs that are currently listed for adoption. This can even be a hierarchical process where maybe you select "large Dog" in one field, then select from a list of breeds that updates to only list large dog breeds and then you get a list of dogs of the selected breed in the third field.
Forum Tutorial: Custom Value List?
In the preceding tutorial, take a look at "option 1" as a way that you can have your list of animals automatically limit to only those currently available for adoption.
Knowledgebase article: http://help.filemaker.com/app/answers/detail/a_id/5833/kw/conditional%20value%20list
Hierarchical Conditional Value lists: Conditional Value List Question
Feel free to post follow up questions here if those links aren't enough to get your value lists working correctly.
There are also other options that can be used to make large value lists more manageable.
This demo file demonstrates several such "enhanced" approaches: https://www.dropbox.com/s/0pm1gdqcfi2ndpv/EnhancedValueSelection.fp7