I have a main user table which has some common attributes of a user (name , email, phone) and then I have 2 more tables (lets say x and y) that contain the different attributes of the two types of users. You may say (x1, x2, x3) and (y1, y2, y3). One user may only be of one type. I have an 'user_id' column in the x and y table and a primary key column. the 'user_id' column references the 'id' column in the user table. Would it be correct if I remove the 'id' column (which serves as primary Key) in the x and y table and instead used the 'user_id' column as the primary and forign key. im using postgres 9.6.
Your scenario is perfectly fine , no problem with that. It is known as super-type and sub-type in database terminology .
To read more about that , visit the link .