A great place to start would be to use Gravity Forms (http://www.gravityforms.com/). No, I do not work for or get paid to endorse this company, I've just used them for the past 3 years while working with WordPress and have found nothing better.
Gravity forms will automatically store all of the data from the form submission in the WordPress database, and you can export out all of the entries whenever you'd like. You can also select a date range of the exported data. Another great feature of this plugin is setting up auto-responders (called notifications) to the user filling out the form. They have good documentation on how to extend this plugin as well as several add-on's that already exist to increase functionality.
As for setting up the unique member ID, what will you be doing with this ID and where do we need to store it? There are many ways to hook into Gravity Forms to generate an ID (or you can use the default ID that Gravity Forms provides with every submission), but not sure what you're looking to do with the ID once it's set. Is it going to eventually be used for letting the user login? Does it need to be unique per user email address (Gravity forms does have a "unique email" address function that will check the DB if this user has already submitted something)? Does the member ID need to cross reference with a list of ID's that already exist somewhere? Let me know what you're looking to do with this ID and what all is involved with it and I can elaborate more on creating/storing it.