Not sure if I am abusing the system by trying to do this…
I want 4 tables. Table 0 is a “common” table containing basic contact details for a person.(name/email/telephone etc)
Tables 1 to 3 are clients, Candidates, and Users.
These table want to reuse the fields from table 0 but will have specific fields for each.
(From an OO perspective, Table 0 is a super class and tables 1-3 are subclasses of table 0)
The reason for this is for maintenance purposes. e.g. if I want to add a facebook ID to all contacts, instead of adding it to 3 tables, i can just add it to 1 (table 0)
I have created links from tables 1-3 to table 0, but I want to make sure that when a user creates records in tables 1 to 3, they are forced to also create and populate a corresponding record in table 0.
And when a user opens a record from tables 1-3, it displays all fields from it AND table 0
If its better to get rid of table 0 and duplicate those fields in tables 1-3, is there any way to “group” them? (Basically this is asking for the best way to setup/manage tables with many columns that logically sit in groups)

