I am building a application that allow different user to store the subscriber information To store the subscriber information , the user first create a listFor each list, there is a ListID.Subscriber may have different attribute : email phone fax .... For each list,  their setting is different , so a require_attribute table is introduced.It is a bridge between subscriber and ListThat store Listid, subid, attribute, datatypeThat means the system have a lot of list, each user have their own list, and the list have different attribute, some list have email , phone , some may have phone, address, name mail.. And the datatype is different, some may use 'name' as integer, some may use 'name' as varcharattribute means email phone, it is to define for which list havewhich subscriber attributedatatype means for each attribute, what is its datatypeTable :subscriber :        Field :subid , name,emailTable :Require Attribute:Field : Listid ,subid , attribute, datatypeThe attribute here is {name, email}So a simple data isSubscriber: 1 , MYname, MyemailRequire Attribute : Listid , 1 , 'email', 'intger' Listid , 1 , 'name', 'varchar'I found that this kind of storage is too complex to handle with,  Since the subscriber is share to everybody, so if a person want to change the datatype of name, it will also affect the data of the other user.Simple error situation:Subscriber:list1,  Subscriber 1 , name1, email1list2, Subscriber 2  , name2 , email2Require Attribute :     List1 , Subscriber 1 , 'email', 'varchar',     List1 , Subscriber 1  , 'name', 'varchar',      Listid , Subscriber 2 , 'email', 'varchar',      Listid , Subscriber 2, 'name', 'integer', if user B change the data type of name in require attribute from varchar to integer, it cause a problem. because list 1 is own by user A , he want the datatype is varchar, but list 2 is won by user B, he want the datatype to be integerSo how can I redesign the structure?
Data base structure of a subscriber list
database;mysql