In principle, Names and other personal data are of identical types for Guest and PlusOne. They can be kept in one table 'Guest'.
Add a field ID_ Guest (number, auto-increment) and a field ID_PlusOne (number).
Enter data in the guest list is then done in a single layout for a single table.
For attributing a PlusOne to a Guest, create a copy of the Guest table TOC and name it PlusOne. Connect the two through a relationship
Guest::ID_Guest = PlusOne::ID_PlusOne.
Now you have a relationship that links a PlusOne to a Guest through these fields.
For attributing a PlusOne to a Guest, create a Portal on your layout (based on the PlusOne TOC) that lets you select a person (represented by a portal row). Place a button for a script in the portal row.
- gets the main list record's ID_Guest and stores it in a variable ($ID)
- and writes the content of $ID in the selected portal row's ID_PlusOne field
Now you have a relationship between a Guest and a PlusOne
Of course, nothing forbids doing the same with two tables Guest and PlusOne.