about constructing a database for student multi-step form I need to construct a database for students. I am wondering how to implement the database. Do I add the students data into the users table? Do I create a student's table, and when a new student is added add part of the data of the student into the users table and the other part into the students table?
The "users" table is for containing information about what the Drupal site sees as authenticated users, which means the users with a login in a Drupal site.

If you are adding information about users that don't need to login on the site, e.g. people working for an organization for which you keep information, then you should not use the "users" table. You should create your own table that contains the necessary dat; possibly, you should create a custom module that creates that database table when installed.

If you are adding users as authenticated users, and you need to store extra information about those users you can:


In Drupal 7, you can add extra fields to the user's account.
In Drupal 6, you can enabled the Profile module, which allows you to add extra fields for the user profiles.
In Drupal 6, and Drupal 7, you can create a module that handles that information.


Of the two solutions, on Drupal 7 it is better to use the fields provided by the field API; if you need to handle the fields in a specific way, you can implement a new type of field in a module.

If you need something more customized, such as a multi-step form to fill the information, then you could write your own custom module that creates its own database table, and uses the user ID as primary key. In this case, you would need to write more code, such as the one that deletes rows from the database table when a user has been deleted from the "users" table. In Drupal 6, that could would be in a hook_user('delete') implementation, while in Drupal 7, it would be in a hook_user_delete() implementation.