views:

213

answers:

1

I've got the following database structure:

Account:
    columns:
        email: string(255)
        name:
            type: string(255)

UserRegistered:
    columns:
        email:
            type: string(255)
            email: true
            notnull: true
            unique: true
        username:
            type: string(255)
            notnull: true
            nospace: true
            unique: true
            minlength: 5
        password:
            type: string(255)
        token: string(255)
    inheritance:
        extends: Account
        type: concrete

UserOpenid:
   columns:
       openid: string(255)
       openid_provider: string(255)
   inheritance:
       extends: Account
       type: concrete

When I insert a new UserRegistered or UserOpenid record, I would've expected it to create a UserRegistered record as well as an Account record.

Did I misunderstand inheritance / am I misusing it, or have I done something wrong?

A: 

If you use concrete inheritance the master table will always be empty. All fields from the master table are duplicated in the child tables.. therefore there is no need to write to the master table.

samsam