I am currently designing a database for a system containing a number of different user types. My schema look like this:
## Users
id INT
name VARCHAR(60)
email VARCHAR(60)
## Doctors
id INT
user_id INT
specialism VARCHAR(60)
qualification_id INT
Essentially, the Doctors table is a child of the Users table.
Now, when i'm creating my models and controllers and models in Cake, I thought it was logical to create a User model and then subclass it with a Doctor model. But this doesn't seem to work when testing with the $scaffold (the 'has one' and 'belongs to' relationships work relatively well, but this way I would not be subclassing the Users classes).
What approach would you suggest for a database designed in this way?
CakePHP is not designed for this. CakePHP uses the ActiveRecord pattern. This pattern works great when your models roughly match up with your database tables. But it breaks down when you want to set up your models in the way you are trying to do now. For your setup, you'd need something like a Data Mapper pattern (as implemented by e.g. Zend_Db).
In your case, I would simply set up User and Docter as two separate models with a hasOne/belongsTo relation. It will be far easier to go with the Cake-ish flow than to fight it.