You could use the default membership and profile providers that come out of the box with Sitefinity. The profile functionality, available in Sitefinity, is close to the default one provided by ASP.Net. However, instead of saving all profile properties in a variable-length table column, the TelerikProfileProvider
saves each profile property as a different record in the table.
For a large amount of users, however, you may want some advanced optimizations. In this case, the most reasonable solution for me is to create a custom provider that handles profile properties in a more specific (respectively faster) manner. If I understand you correctly, some collections of items (records) would be saved for every user - another reason for you to create a custom profile provider since you would probably want to avoid serialization/deserialization for these collections.
I hope this information is helpful. If you have any other questions, feel free to ask again.
the Telerik team