How to design to save incomplete user input?

We have a Dot net Win Application that has several forms with over 40 fields to fill out.

When the User fills in 25 fields, and then realizes that he needs to get some more data before he can save the information, or He enters all the data, but there is some business verification error on which you need to contact someone before correction .

In such scenarios, he would like to save incomplete or incorrect data for some temporary data storage and get it later when he has data to complete the save operation.

Please let me know what would be the best way to implement this?

He has several options that we examined:

1) create an XML block and save it on your local machine (but the user may need this from some other machine)

2) Create duplicate tables to store invalid data (but, I believe that invalid data should never be part of my database)

+6
design
source share
8 answers

You can save a partial XML form and save the XML in a database table, which also has a user identifier and form identifier. The next time the user displays the form on the original machine or another machine, the system will detect partial data and prompt the user to reload / ignore / delete it. You will need only one table for all forms and users. Separate tables for each database object are not needed.

+6
source share

You can put all invalid data as a plain text / xml field in one database table. Presumably you do not need to sort / search for incomplete data. This can combine the benefits of both of your ideas.

+1
source share

How do you store data when a user submits it for verification? Do you keep it in session? Could you just save this part of the session in your database and restore it when it wants to end the recording?

Another thought is to break the forms into sections, which are saved until the beginning. The 40-field shape seems excessive and can also lead to difficult use.

+1
source share

JD is great. This user interface sounds like a wizard task. Thus, by the time they realize that they need more data, they have 3 pages, and you know that the data is valid as you checked page by page.

0
source share

I would say go with the second option, but bind the incomplete data to the session so that you get 2 things:

1) incomplete data expires when the session expires 2) there will be a clear connection whose data belongs to that session (user)

I do not think that something is wrong with storing it in the database, if you make sure that it is periodically cleared (in this case, when the session expires). Good luck.

Edit: if you want it to be available through the session, bind it to the user and terminate it when it is completed.

0
source share

1) incomplete data expires when the session expires

The user wants incomplete data to be available to enter the session.

0
source share

I think it belongs to a separate table. From a business point of view, this is an unfinished widget. When saving and checking, it is saved in the Widget table.

The imaging may seem a little sick, but I think that makes sense in this situation.

0
source share

Perhaps inconsistent, but: save the incomplete object in the same database table in which you would save the completed object.

Incomplete and complete objects have exactly the same entity class and simply at different stages of their life. You can use the status field to indicate whether the object has yet been verified. This solves the problem without introducing a completely new mechanism for debugging and support.

0
source share

All Articles