In my application the user will describe a case, a case will typically have a title, description, date and some other attributes. The user will also be able to add attachments to a case.
The case must have an ID for the user to be able to add attachments. This ID is created when the case is saved for the first time. Therefore, the user will have to press 'save', then re-open the case to be able to add an attachment.
To provide a better user experience I want to save the case before the user attempts to add an attachment. I have thought of two approaches, both with their pros and cons:
Two step creation - The user must first enter the title of the case only. When he saves the title, the ID is created and he is shown another form with the remaining case fields - description, attachments and so on.
Background save - Save the case in the background when the user fills the title field and deselects it. The case is saved with the title only, and the ID is created. This is what I do at the moment.
I feel that my first approach is the safest one, where little can go wrong, but may be annoying for the user. My second approach is better for the user, but only if he actually enters the title first. If he tries to add attachments first, he won't be able to, and probably won't understand why. Also, if he decides to cancel the case, the title will still be saved.
Which approach should I go with? Are there other approaches that I have not thought of?