I'm writing a web-app which has a form so that users can input the details of Thing A. Thing A is associated with at least 1 Thing B, which are also user-defined. Is there a pattern or some examples of forms which have this kind of relationship, where users can 'add another' Thing B to their Thing A in a form that grows organically to the users requirements.

enter image description here

  • do you have a rough mock to give more context?
    – Mike M
    Aug 2, 2017 at 17:28
  • @MikeM so in this case a club may have many venues Aug 2, 2017 at 17:58
  • Okay, so if you have 4 venues (collection B), and you want to add a fifth venue, which will also save to (collection B), correct? But you don't want to go all the way to thing B to add this.
    – Mike M
    Aug 2, 2017 at 18:14
  • yes - to me it seems convenient to be able to setup Thing B at the same time as Thing A since the relationship is more of a composition rather than aggregation. Aug 2, 2017 at 18:26
  • English please - what's the real world use of this? A club that can have many venues and many classes at each of those venues? Aug 2, 2017 at 21:13

1 Answer 1


The below images are a "flow" for how Google Compute Engine does something similar to what I think you are getting at. It has inputs for thing A and then has a Thing B section where you can fill out info for one, but also add a new one. When you add a new Thing B it collapses the first Thing B into a table like format showing a read only state of a couple the options the user filled out. It can then be re-expanded and edited.

If you were thinking of going a route where the user isn't creating a new thing B in the Thing A process, then, depending on the # of Thing Bs I would have an "attach" button that opens a modal with the list of Thing B's with checkboxes. The user selects the ones they want and adds them at which point modal closes and a summary/small table of the added Thing B's is shown.

Hope this helps and good Luck! (Please let me know if this is way off the mark haha)

Starting Form

Adding new B

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.