I'm using the Class Table Inheritance architecture with my application and have read Fowler. When mapping my database tables to classes in code, I've realized I have no need for an "ID" property on my derived classes, and, in fact, it can cause issues if it has the same name because it hides the base class property.
Do my child tables need to have their own surrogate primary keys, or should the foreign keys relating them to their parent record also serve as the primary key for the child records? Fowler doesn't get that specific on CTI. I'm used to always having surrogate keys, so a departure from this convention doesn't feel quite right and if there is a good reason to stick to it, I'll take it.