I'm creating an application that will allow each of it's users to create a list of their customers. Each user will have the ability to associate an aribtrary number of fields to their list of users. So user A might have a list of 20 customers, and wants to record their name, phone number and address. However user B may have completely different requirements and wants to list each customer by only their email address and hair colour (an odd combination -- but it should be possible).
The problem is that if the application has a lot of users, one arbitrary "customer" table will not fit all their needs. One way around this would be to create a separate customer table for each user, i.e. user_A_customers would contain the fields name, phone_number and address_line_1 etc. whereas user_B_customers would have only 2 fields, email_address and hair_color.
Is this an appropriate solution to the problem? Are there any drawbacks to this?