Simple approach is to use a seperate table to store the sign-up untill the admin approves the user, and copy the details over to the 'users' table once approved. Otherwise you would need an 'approved' column in the user table, and that can be a real pain as you would have to check it for every access and can easily forget to do so. It is also easier to hack a single column than it is to hack a table where you do not have a record to begin with. It is also easier to view the users needing approval if they are in a seperate table.