This question is about how to create objects in a relational database without a ton of popups.
I'm working on a web app that has forms within forms. That is, you can create linked objects within the object creation dialog. Here's an example to illustrate the concept:
download bmml source – Wireframes created with Balsamiq Mockups
Jewels could have multiple magic powers. Or whatever. (I'm actually working on a financial product.)
Any good ideas about how to do this in a non-ugly, non-confusing, preferably one-window way?
-- Edit 1 --
Here's more information for my specific situation. I'd prefer to keep this more general, but if a good design only shows up for my situation, that would be fine. Let me know if there's anything else you'd like to know!
- Users are both noobz and power users. Some use this application all day, and know their way around, others log in once or twice just to change an important setting / make a new item.
- This form is being used to create items for clients. They want it done quickly, and with low chance of error.
- This application is used in a corporate banking setting. The primary user is an account manager for major companies. (These users spend a lot of time in the application, creating things for clients.)
- This pattern comes up a lot. Sometimes it only goes 2 levels deep, but in some cases it goes many, many levels deep. (15~20) There may even be cases of recursive loops. I'm not sure. For the sake of this question, I'd prefer to assume that it's infinite. (I'd accept an awesome answer for a finite amount though, if it's super awesome.)
- Individual items can be pretty complex. Up to ~100 form elements. Some item forms have odd fields too like long lists / document uploads / etc...
- There can be different kinds of items on each level. Ex: A Person could also have Enchantments, Powers, Friends, etc... I should be able to create these from the Person form and have them added to my Person.
- Each level can have multiple properties for the item. For example, a Jewel may have weight, color, combination logic (rule references that keep it from being combined with certain other Jewels,) or Magical Powers (references to other objects.)
-- Edit 2 --
It would be ideal if answers accommodated all relationship types. (Ex: one-to-one, one-to-many and many-to-many relationships. That is, the Dagger object could be owned by Bob alone or shared by many People.
I know it's a lot to ask, but I really appreciate the ideas!