"Would the pk of the supertype table person bee the pk + fk of the subtype table?"
yes, that's right
there is no "correct" naming convention
the best naming convention, in my opinion, is
- lean
- short
- evocative
lean means don't throw crap into the name, like tblPeople for the people table
short should be obvious, you will be typing the name, and the fewer keystrokes the better
evocative to give an indication of what's in the table/column, so BackorderAmount instead of BOAmount (shorter but misleading) or -- $deity help us -- Amount (meaningless)
it should also go without saying that you should not name a column with a reserved word like Date, but i see this all the time
there is a bit of controversy surrounding the naming of primary keys
if table1 has a pk called ID, and table2 is related to table1 with a foreign key, what do you call the foreign key?
most people (myself included) would call it table1ID, but this prevents you from using the USING keyword in joins, and the NATURAL join altogether
in order to use USING or a NATURAL join, you would have to go back to table1 and name the primary key table1ID, which i find a bit redundant