i say the answer depends on where you are running the system. a schemaless system like google app engine allows you to add fields on the fly. i actually have a table that specifies fields to be appended to a user table. in my db.py i query the first table and generate my user table on the fly. since i am running on GAE there is no upgrade and stuff just works. it's an advantage of having a schemaless system.
your option certainly works for a traditional SQL database. i suppose if you allowed migrations you could have a single table per event that had all the fields, and generate that on the fly, though changes once it is created might be pretty hard. cfh On Nov 4, 9:21 pm, Jason Brower <[email protected]> wrote: > I understand how to actually do it in the database. But what if I > wanted to know if there is a proper way to do it when I let specific > roles in my site create fields of their own. > For example: (I am building a conference software.) > John is using my site to create an event to attend. > He has the usual fields already: username, password, first name last > name, email... > But he want to add more fields. For example "school affiliation". > How would you best handle this situation? > I was thinking of creating many to many table... > Users that log into my system can attend more than one conference/event > so we have the basics like shown above. > Then people can attend various events and fill in more data. > So: > > T:field > conference_id > field_name > field_type > field_required > > T:user_conference_field > conference_id > user_id > field_id > data > > And then I would have to create customer forms for these as they are > certainly not conventional. > That second table here is like a 3 way cosmic convergence of craziness > and I wonder if there is a better way. > --- > Best Regards, > Jason Brower

