Inheritance of unknown type at creation time
Try searching  "single table inheritance" or "class table inheritance".  Especially the web pages from Martin Fowler.

Also, if you use a technique called "shared primary key", you can reference a person by that person's personid regardless of what occupation the person eventually chooses.  In the Plumber table, the primary key is not plumberid, but rather personid, which is a copy of the personid from persons.  You declare plumber.personid to be a primary key, and also to be a foreign key that references person.personid.

This has some rather nice results.  It makes joining plumbers and persons simple, easy, and fast.  It maintains the one-to-one or zero-to-one relationship between plumbers and persons.  And it allows you to reference a child without knowing  whether that child will grow up to be a plumber or not.