I am currently using Moodle 2.0. We are creating an installation specifically for a client who needs to use the Create New Account page to gather a LOT of demographic information from each user. I have managed to add fields to the mdl_user database table and hand-code 90% of these required fields into the signup_form page. They work fine.
The problem is that there is a chunk of information which I feel strongly should be in its own table, not merely added into the mdl_user table. I cannot add these fields via the "add new user profile fields" option, which is what I tried first. The clients want us to both automatically create accounts for about 400 people, AND pre-load each user's demographic information at the same time. So I have to be able to give them a comma separated template file they can fill out, and then hand back to us, so that our DB guy can then plug the info into the database. Unfortunately, the way Moodle organizes the table when you create new profile fields makes it impossible for us to load information this way, and I certainly don't want to enter 400 people's worth of info by hand!
The only other option I can think of is to add 18 additional fields to the mdl_user table. But, as I mentioned, both the database guy and I are very reluctant to do this. I think it would just be simpler to create one new table with these 18 fields and connect it to the mdl_user table by userid or something.
Does anyone know if this is possible? I don't know much about databases. I don't want to unintentionally break Moodle. I found this doc:
http://docs.moodle.org/en/Development:Installing_and_upgrading_plugin_database_tables
I don't want to make a plugin though. I just want to add one new table to the database. If anyone can help me I'd really appreciate it. If I look up database tutorials, non-specific to Moodle, will I be able to figure things out, or are there Moodle-specific pitfalls I should be aware of?